在facebook页面上分享抛出错误

Har*_*ara 21 android facebook-sharer facebook-android-sdk android-facebook

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

(#100)只有URL的所有者才能指定图片,名称,缩略图或描述参数.

它在5-10天前工作正常.搜索时我在Facebook开发者网站链接上找到了以下内容:

"自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);
        }
    });
Run Code Online (Sandbox Code Playgroud)

Joa*_*pes 5

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

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

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

这是对的描述 fb:pages

与URL关联的一个或多个Facebook页面ID,以便启用链接编辑和即时文章发布.

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


Ass*_*ous 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);
                }
Run Code Online (Sandbox Code Playgroud)

我希望它能帮助你