WebDialog.RequestsDialogBu​​ilder实际上不发送请求?

时间:2014-07-09 11:55:04

标签: android fbwebdialogs

我正在开发一个应用程序,它向所选用户发送请求。我是通过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)....仍然没有工作...... 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

嗯,根据documentation for RequestDialogBuilder方法public WebDialog build(),您描述的行为是设计的。引用:

“对话框未显示,但可以通过调用Dialog.show()显示”

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

可能有也可能没有办法做你想做的事情(在没有任何用户互动的情况下发送应用程序请求)......如果有办法,它将沿着这些方向:

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

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