После долгих исследований и попыток исправить это самостоятельно, я не нашел приемлемого рабочего результата.
Следуя этой документации, я пытаюсь пригласить друзей в свое приложение. Все элементы, такие как кнопки «Поделиться», работают правильно.
Единственная проблема связана с диалоговым окном «Пригласить в приложение». После выбора друга в диалоговом окне отображается красный значок предупреждения, а кнопка «Отправить» превращается в кнопку «Повторить попытку».
Я пытался исправить это разными способами: настройте свое приложение на странице разработки FB (например, смените категорию приложения : игра, путешествия .и т.д.), добавляя новое разрешение на раздачу (но я не нашел, что для этого требуется приглашение), используя GamesRequests (но мое приложение не игра, это приложение для Android + Canvas). Итак, я снова вернулся к AppInviteDialog.
Кроме того, я пытаюсь использовать собственный экземпляр со слушателями вместо статического класса.
inviteDialog = new AppInviteDialog(this);
inviteDialog.registerCallback(callbackManager, new FacebookCallback<Result>() {
@Override
public void onSuccess(Result result) {
Log.i(TAG, "MainACtivity, InviteCallback - SUCCESS!");
}
@Override
public void onCancel() {
Log.i(TAG, "MainACtivity, InviteCallback - CANCEL!");
}
@Override
public void onError(FacebookException error) {
Log.e(TAG, "MainACtivity, InviteCallback - ERROR! " + error.getMessage());
}
});
И вызывая его, как в руководстве:
if(AppInviteDialog.canShow()) {
AppInviteContent content = new AppInviteContent.Builder()
.setApplinkUrl(appUrl)
.setPreviewImageUrl(imagePreviewUrl)
.build();
//AppInviteDialog.show(this, content); //static
inviteDialog.show(content); //my instance
}
Но все, что я получаю, это:
Редактировать:
После создания ссылки на мое приложение с помощью AppLinks и использования ее в AppInviteDialog, теперь все работает нормально. Немного смущает, что в документации не ясно описано, что за ссылка нужно использовать: «ссылка на AppLinks» или просто «ссылка на приложение (ссылка на ваше приложение fb)».
FacebookCallback<Result>
из моего фрагмента кода, да, это работает - я могу показать сообщение об успехе или обработать ошибку. - person VadymVL   schedule 10.04.2015