Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook共享帖子返回空Android_Android_Facebook - Fatal编程技术网

Facebook共享帖子返回空Android

Facebook共享帖子返回空Android,android,facebook,Android,Facebook,当用户共享到Facebook时,有两种情况 当用户的设备上没有安装Facebook应用程序时,我可以使用ShareLinkContent、ShareDialog和CallbackManager来共享内容。共享完成后,调用onSuccess(sharr.Result Result),我可以通过调用Result.getPostId()获得postId没有问题。postId类似于1492503807719975_1492539595997716396 然而,当用户在其设备上安装了Facebook本机应

当用户共享到Facebook时,有两种情况

当用户的设备上没有安装Facebook应用程序时,我可以使用
ShareLinkContent
ShareDialog
CallbackManager
来共享内容。共享完成后,调用
onSuccess(sharr.Result Result)
,我可以通过调用
Result.getPostId()获得
postId
没有问题。
postId
类似于1492503807719975_1492539595997716396

然而,当用户在其设备上安装了Facebook本机应用程序时,我仍然以相同的方式共享内容,并且成功地完成了共享,但在这种情况下,
postId
我从
result.getPostId()获得
null

有人能说出原因吗

谢谢

以下是我的活动代码:

private CallbackManager mFacebookCallbackManager;
private ShareDialog     mFacebookShareDialog;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    ...

    FacebookSdk.sdkInitialize(this);
    mFacebookCallbackManager = CallbackManager.Factory.create();
    mFacebookShareDialog = new ShareDialog(this);
    mFacebookShareDialog.registerCallback(mFacebookCallbackManager, this);
}

private void shareOnFacebook()
{
    ShareLinkContent.Builder builder = new ShareLinkContent.Builder()
            .setContentTitle(mTitle)
            .setContentDescription(mContent)
            .setContentUrl(Uri.parse(mURL));

    if (!mImageURL.isEmpty())
    {
        builder.setImageUrl(Uri.parse(mImageURL));
    }

    mFacebookShareDialog.show(builder.build());
}

@Override
public void onSuccess(Sharer.Result result)
{
    String postID = result.getPostId();
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    mFacebookCallbackManager.onActivityResult(requestCode, resultCode, data);
}

只有当用户登录到你的应用并授予其
publish\u actions
权限时,“共享”对话框才应返回帖子id。但是,如果没有安装Facebook应用,我将获得帖子id。当用户也有应用程序时,我难道不能获得帖子id吗?事实上,共享对话框不需要“发布操作”权限。通过对话框或社交插件发布不需要此权限。如果您只使用共享对话框、提要对话框、消息对话框等,请不要请求查看此权限。”来源:根据@CBroe,尝试请求
publish\u操作
,然后查看您是否获得帖子id。一般来说,如果您没有按照请求
publish\u actions
权限(仅当用户使用Facebook登录到您的应用程序并已授予publish\u actions时,才可以查看。如果存在,这是已发布的开放图故事的id。)@ifaour谢谢!为什么(你刚才提供的文档链接)对我来说这么难找到?