Android Facebook MessageDialog回调不工作
我正在开发通过facebook Messenger应用程序向用户的facebook好友发送链接+内容的功能 首先,我使用facebook-android-sdk-4.3 并编写以下代码Android Facebook MessageDialog回调不工作,android,facebook,messenger,Android,Facebook,Messenger,我正在开发通过facebook Messenger应用程序向用户的facebook好友发送链接+内容的功能 首先,我使用facebook-android-sdk-4.3 并编写以下代码 callbackManager = CallbackManager.Factory.create(); messageDialog = new MessageDialog(this); messageDialog.registerCallback(callbackManager, new FacebookCal
callbackManager = CallbackManager.Factory.create();
messageDialog = new MessageDialog(this);
messageDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
Log.e(TAG, "send success")
}
@Override
public void onCancel() {
Log.e(TAG, "send cancel")
}
@Override
public void onError(FacebookException e) {
Log.e(TAG, "send error")
}
});
if (MessageDialog.canShow(ShareLinkContent.class)) {
ShareLinkContent linkContent = new ShareLinkContent.Builder()
.setContentTitle("....")
.setContentDescription(message)
.setContentUrl(....)
.setImageUrl(Uri.parse(.....))
.build();
messageDialog.show(linkContent);
}
最后,我运行应用程序,按send,打开send message dialog。
及
- 我按send message,
calledonSuccess
- 我按back键取消,也调用了成功时的
:((((onSuccess
谢谢!我相信这与用于在订阅源上共享的ShareDialog发生的问题是相同的。当用户共享或取消该对话框时,我在成功时收到一个回调,并且postId始终为空!因此我无法区分这两个结果 经过一些研究,我发现了这一点。Facebook团队回答如下: 经过进一步的研究,发现这种行为是经过设计的。SDK对MessageDialog等对话框重用FacebookCallback类,但它使用onSuccess()方法来发出任何类型的对话框关闭信号。这意味着onSuccess()将在实际发送消息时调用,但也会在对话框未发送消息而被取消时调用 在我的例子中,这就是解决方案:用户必须在登录过程中授予
publish\u actions
权限,才能触发onSuccess和onCancel。此外,当帖子成功发布到Facebook时,还会返回帖子ID
我希望这能为您澄清问题。谢谢您的建议。目前,ShareDialog在facebook android sdk 4.3版上运行良好。只有MessageDialog有此漏洞:(@NamLe是的,我试图授予我的应用权限,但MessageDialog仅在成功时作为回调触发。这仅适用于ShareDialog。MessageDialog仅适用于Messenger的本机应用?
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}