在facebook页面上分享抛出错误

时间:2018-01-04 16:04:53

标签: android facebook-android-sdk facebook-sharer android-facebook

当我在Facebook页面上分享时,会收到以下错误:

(#100)只有网址的所有者才能指定图片,名称,缩略图或说明参数。

5-10天前工作正常。搜索后,我在Facebook developer site link上找到了以下内容:

  

"截至2017年11月7日,可以使用链接自定义   链接必须由发布页面和页面访问令牌拥有   需要。要验证所有权,请检查   URL节点上的ownership_permissions {can_customize_link_posts}字段。   有关详细信息,请参阅我们的链接所有权指南。对于版本2.10   不推荐使用更低版本,图片,名称,缩略图和说明。   所有版本都不推荐使用标题。"

任何帮助将不胜感激!

ShareLinkContent content = new ShareLinkContent.Builder()
            .setContentUrl(Uri.parse(shareUrl))
            .build();

new ShareApi(content).share(new FacebookCallback<Sharer.Result>() {

        @Override
        public void onSuccess(Sharer.Result result) {
            shareCallback.onSuccess(result);
        }

        @Override
        public void onCancel() {
            shareCallback.onCancel();
        }

        @Override
        public void onError(FacebookException error) {
            shareCallback.onError(error);
        }
    });

2 个答案:

答案 0 :(得分:5)

据我所知,这是对facebook api的最近更改。 它要求页面编辑者添加带有页面ID的元标记。

https://developers.facebook.com/docs/sharing/opengraph/object-properties?hc_location=ufi

在该页面上,请查找fb:pages

以下是fb:pages

的说明
  

按顺序与网址关联的一个或多个Facebook页面ID   启用链接编辑和即时文章发布。

简而言之,您需要添加<meta property="fb:pages" content="PAGE_ID">才能编辑共享内容。

答案 1 :(得分:2)

我已经使用ShareDialog实现了这里是代码

CallbackManager callbackManager;
ShareDialog shareDialog;
shareDialog = new ShareDialog(this);
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
                @Override
                public void onCancel() {

                }

                @Override
                public void onError(FacebookException error) {

                }

                @Override
                public void onSuccess(Sharer.Result result) {

                }
            });
if (ShareDialog.canShow(ShareLinkContent.class)) {
                    ShareLinkContent linkContent = new ShareLinkContent.Builder()
                            .setShareHashtag(new ShareHashtag.Builder()
                                    .build())
                            .setContentUrl(Uri.parse(shareUrl))
                            .build();
                    shareDialog.show(linkContent);
                }

我希望它可以帮到你