WebDialog.RequestsDialogBuilder на самом деле не отправляет запрос?

Я работаю над приложением, которое отправляет запрос выбранному пользователю. Выбираю пользователя через FriendPickerFragment(Android.Support.V4.App). Я успешно получаю список друзей, выбранных мной на кнопке "Готово" фрагмента выбора. Опубликуйте это, я пытаюсь создать диалог запроса, который не должен отображаться в моем приложении, но должен отправить запрос FB выбранным друзьям. Вот мой код:

Bundle bundle = new Bundle ();
bundle.PutString ("app_id", AppID);
var dialog = new WebDialog.RequestsDialogBuilder (this.Activity, Session.ActiveSession,     bundle).SetMessage(user + " has invited you to join my application");
dialog.Build ();

Проблема, с которой я сталкиваюсь, заключается в том, что запрос фактически не отправлен. Там тоже нет исключений. Я даже осуществил обратный звонок:

public void OnComplete(Bundle bundle, FacebookException e)

но выполнение НЕ идет в обратном вызове. Что мне здесь не хватает? Любая помощь будет принята с благодарностью.

Пробовал dialog.SetTo(userId) перед сборкой тоже.... еще не работает... Есть предложения?

1 ответ

Решение

Ну, согласно документации для RequestDialogBuilder метод public WebDialog build(), поведение, которое вы описываете, является дизайном. Цитата:

"Диалог не показывается, но готов к показу, вызывая Dialog.show()"

Похоже, вы не хотите показывать диалог, а просто хотите отправить запрос без какого-либо пользовательского интерфейса. Вы используете не тот инструмент, чтобы сделать это. Чтобы отправить запрос с использованием диалогового окна, вы должны отобразить это диалоговое окно, и действие пользователя - это то, что вызывает отправку запроса. Для этого не требуется специальных разрешений, которые должны быть предоставлены заранее, поскольку он отправляет запрос только в том случае, если пользователь выберет его после того, как ваше приложение откроет диалоговое окно.

Может быть или не быть способа сделать то, что вы хотите (отправить запрос приложения без какого-либо взаимодействия с пользователем) ... если есть способ, он будет выглядеть следующим образом:

используйте Graph API, получите токен с некоторыми разрешениями, которые пользователь предоставляет вашему приложению. Вот место, чтобы начать искать:

https://developers.facebook.com/docs/graph-api/reference/v2.1/user/apprequests/

Другие вопросы по тегам