我正在开发通过facebook应用程序将链接+内容发送给用户Facebook好友的功能。
首先,我使用facebook-android-sdk-4.3。
并编写以下代码
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);
}我覆盖了onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
callbackManager.onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
} 最后,我运行应用程序,按下发送,打开发送消息对话框。和
onSuccess呼叫onSuccess也打电话来了。:())当用户按回键关闭发送对话框时,如何捕获回调?
谢谢!
发布于 2015-06-27 16:45:42
我相信这也是用于在提要上共享的ShareDialog的相同问题。当用户共享或取消对话框时,我在onSuccess上收到一个回调,而postId总是空的!所以我无法区分这两个结果。
经过一番研究,我发现了这个错误报告。脸书小组答复如下:
经过进一步的研究,发现这种行为是故意的。SDK为对话框(如FacebookCallback )重用MessageDialog类,但是它使用onSuccess()方法来指示对话框的任何类型的关闭。这意味着当消息实际发送时将调用onSuccess(),但也会在没有发送消息的情况下关闭对话框时调用。
在我的例子中,这就是解决方案:用户必须在登录进程中授予publish_actions权限,以便同时触发onSuccess和onCancel。同样,当该帖子成功地发布到Facebook上时,postId将被返回。
我希望这能帮你弄清楚。
https://stackoverflow.com/questions/31089917
复制相似问题