0

我正在开发一个应用程序,该应用程序向所选用户发送请求。我正在通过 FriendPickerFragment(Android.Support.V4.App) 选择用户。我成功地获得了我在 Picker 片段的“完成”按钮上选择的朋友列表。发布后,我正在尝试构建一个请求对话框,该对话框不应显示在我的应用程序中,但应将 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) ......仍然无法正常工作......有什么建议吗?

4

1 回答 1

0

好吧,根据RequestDialogBu​​ilder方法的文档public WebDialog build(),您描述的行为是设计使然。引用:

“对话框未显示,但已准备好通过调用 Dialog.show() 显示”

听起来您不想显示对话框,而只想发送没有任何 UI 的请求。您使用了错误的工具来做到这一点。要使用对话框发送请求,您必须显示对话框,并且用户操作是导致发送请求的原因。这不需要提前授予任何特殊权限,因为它只会在用户选择在您的应用打开对话框后发送请求。

可能有也可能没有一种方法来做你想做的事(在没有任何用户交互的情况下发送应用程序请求)......如果有办法,它将遵循以下原则:

使用 Graph API,获取具有用户授予您的应用程序的某些权限的令牌。这是一个开始寻找的地方:

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

于 2014-10-03T05:17:55.273 回答