【问题标题】:Share on facebook page throwing an error在 facebook 页面上分享会引发错误
【发布时间】:2018-01-04 16:04:52
【问题描述】:

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

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

它在 5-10 天前运行良好。搜索时,我在Facebook developer site link 上发现了以下内容:

“自 2017 年 11 月 7 日起,可以使用链接自定义,但是 链接必须由发布页面拥有,并且页面访问令牌是 必需的。要验证所有权,请检查 URL 节点上的 Ownership_permissions{can_customize_link_posts} 字段。 有关更多信息,请参阅我们的链接所有权指南。对于 2.10 版本 和 lower、图片、名称、缩略图和描述已被弃用。 所有版本都弃用了标题。”

任何帮助将不胜感激!

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);
        }
    });

【问题讨论】:

  • 你到底想分享什么?请附上您的代码。
  • @luschn : 我编辑了我的问题,请看一下!
  • 好的,所以你真的只尝试分享url,没有额外的参数?
  • @luschn : 是的,我们只分享网址

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


【解决方案1】:

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

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

请在该页面上查找fb:pages

这是fb:pages的描述

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

简而言之,您需要添加&lt;meta property="fb:pages" content="PAGE_ID"&gt; 才能编辑分享内容。

【讨论】:

    【解决方案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);
                    }
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多