首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Facebook MessageDialog回调无效

Facebook MessageDialog回调无效
EN

Stack Overflow用户
提问于 2015-06-27 14:42:16
回答 1查看 1.7K关注 0票数 0

我正在开发通过facebook应用程序将链接+内容发送给用户Facebook好友的功能。

首先,我使用facebook-android-sdk-4.3。

并编写以下代码

代码语言:javascript
复制
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

代码语言:javascript
复制
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  callbackManager.onActivityResult(requestCode, resultCode, data);
  super.onActivityResult(requestCode, resultCode, data);
}  

最后,我运行应用程序,按下发送,打开发送消息对话框。和

  • 我按下发送消息,onSuccess呼叫
  • 我按后键取消,onSuccess也打电话来了。:())

当用户按回键关闭发送对话框时,如何捕获回调?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-06-27 16:45:42

我相信这也是用于在提要上共享的ShareDialog的相同问题。当用户共享或取消对话框时,我在onSuccess上收到一个回调,而postId总是空的!所以我无法区分这两个结果。

经过一番研究,我发现了这个错误报告。脸书小组答复如下:

经过进一步的研究,发现这种行为是故意的。SDK为对话框(如FacebookCallback )重用MessageDialog类,但是它使用onSuccess()方法来指示对话框的任何类型的关闭。这意味着当消息实际发送时将调用onSuccess(),但也会在没有发送消息的情况下关闭对话框时调用。

在我的例子中,这就是解决方案:用户必须在登录进程中授予publish_actions权限,以便同时触发onSuccess和onCancel。同样,当该帖子成功地发布到Facebook上时,postId将被返回。

我希望这能帮你弄清楚。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31089917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档