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/