当app没有安装时,facebook shareDialog是什么?奇怪的行为?

时间:2017-04-19 11:20:39

标签: android facebook-graph-api facebook-sharer facebook-share publish-actions

我正在使用Facebook的ShareDialog,以便在我的应用中在Facebook上分享printScreen图像。

安装Facebook应用程序后,它可以正常工作。

如果安装了Facebook应用 ,则无效。我看到“加载”屏幕,然后它消失了,没有任何反应。 共享对话框对象使用FacebookException:

到达onError回调
{FacebookGraphResponseException: (#200) Requires extended permission: publish_actions httpResponseCode: 403, facebookErrorCode: 200, facebookErrorType: OAuthException, message: (#200) Requires extended permission: publish_actions}

所以我真的只需要facebook.com的“publish_actions”权限而不是facebook app吗?怪异..

Facebook writes:

https://developers.facebook.com/docs/sharing/android

"If the Facebook app is not installed it will automatically fallback to the web-based dialog"

"Now the SDK automatically checks for the native Facebook app. If it isn't installed, the SDK switches people to their default browser and opens the Feed Dialog."

我的代码:

mShareDialog = new ShareDialog(mActivity);

    mShareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
        @Override
        public void onSuccess(Sharer.Result result) {}

        @Override
        public void onCancel() {}

        @Override
        public void onError(FacebookException error) {
            if (error != null) {
                showDialog("facebook app isn't installed");
            }
        }
    });

    if (ShareDialog.canShow(ShareLinkContent.class)) {

        // get a screenshot
        Bitmap image = getScreenshot();

        SharePhoto photo = new SharePhoto.Builder()
                .setBitmap(image)
                .setCaption(getResources().getString(R.string.shareBodyText))
                .build();

        SharePhotoContent content = new SharePhotoContent.Builder()
                .addPhoto(photo)
                .build();

        mShareDialog.show(content);
    }

那么为什么在没有“publish_actions”的情况下安装facebook app并且在没有安装facebook app时不起作用呢?

1 个答案:

答案 0 :(得分:1)

这是SharePhotoContent的要求,您必须安装原生faceboook应用才能分享照片。

来自Facebook Docs

  

照片

     

人们可以通过共享将您应用中的照片分享到Facebook   对话框或自定义界面。

     
      
  • 照片尺寸必须小于12MB
  •   
  • 人们需要安装原生Facebook for Android应用,版本7.0或更高版本
  •