facebook android sdk sharedialog回调总是成功

时间:2015-05-10 18:24:10

标签: java android facebook

使用Facebook android sdk版 4.1.1 ,我设法打开shareDialog并使用以下代码分享内容:

if (ShareDialog.canShow(ShareLinkContent.class)) {
        ShareLinkContent linkContent = new ShareLinkContent.Builder()
                .setContentTitle("Hello Facebook")
                .setContentDescription(
                        "The 'Hello Facebook' sample  showcases simple Facebook integration")
                .setContentUrl(Uri.parse("http://developers.facebook.com/android"))
                .build();

        shareDialog.show(linkContent);
        shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {

            @Override
            public void onSuccess(Result result) {
                //always gets called

            }

            @Override
            public void onCancel() {
                //do something

            }

            @Override
            public void onError(FacebookException error) {
                // TODO Auto-generated method stub

            }

        });
    }

和ActivityResult代码的回调:

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
}

无论用户是否按下对话框的后退发布按钮,resultCode始终为-1, RESULT_OK 。并且始终调用回调的onSuccess函数,无论是发布还是取消内容,postId始终为null。任何人都知道为什么这样做?

2 个答案:

答案 0 :(得分:2)

根据THIS,这是facebook开发人员bug部分报告的错误,这是众所周知的,根据给出的答案,似乎在设计中任何形式的关闭对话都被视为成功。< / p>

答案 1 :(得分:0)

我正在使用SDK 7.1.0,这似乎不再是问题。本地对话框和Web共享对话框都在调用正确的回调方法。