【问题标题】:Facebook share with custom parameters with API version 2.9Facebook 使用 API 版本 2.9 与自定义参数共享
【发布时间】:2017-05-04 09:42:29
【问题描述】:

我需要在 facebook 上分享一个包含自定义标题、图片和描述的测验结果。在 4 月 18 日更新到 2.9 版之前,Wich 运行良好

但它不适用于 2.9 版。所以我错过了什么吗?还是 Facebook 不希望我们在 2017 年共享我们网站的自定义 Facebook 订阅源?

对于我的测试 Facebook 提要设置,我严格使用 Facebook Developers Documentation 进行编码。

Facebook Changelog v2.9表示不再支持参数图片、名称、描述和标题。

我的 fb api 初始化:

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '*APP-ID*',
      xfbml      : true,
      version    : 'v2.9'
    });
    FB.AppEvents.logPageView();
  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>

我的 Facebook 分享电话:

<script>
    $(document).ready(function() {
        $('#fbButton').click(function() {
            FB.ui({
                method: 'feed',
                link: '*URL*',
                caption: 'An example caption',
                picture: '*URL*/img/content4.jpg',
                name: 'An example name',
                description: 'An example description'
            }, function(response){});
        });
    });
</script>

因此,我得到了一个没有任何图片或描述的 Facebook 提要。唯一的就是一个标题(在&lt;head&gt;&lt;title&gt; 中定义的页面标题)。

显然,通常的程序不再起作用了。

那么有什么方法可以用新的 facebook API 2.9 版共享自定义文本和自定义图片?

有什么解决方法吗?还是 v2.9 是不可能的,因为 facebook 不希望我们共享这样的自定义提要? (无论出于何种原因..)

(不,我不能使用 og:tags)

【问题讨论】:

  • @CBroe,你能发布一个链接,指向它是打击假新闻的一部分吗?
  • 对不起,这不是基于任何官方声明;根据以下新闻报道、与 Facebook 开发人员的讨论等,如果你愿意,可以称之为直觉。
  • 似乎他们确实发表了官方声明,称其是为了打击假新闻:developers.facebook.com/blog/post/2017/06/27/…

标签: facebook facebook-graph-api facebook-javascript-sdk facebook-share facebook-feed


【解决方案1】:

我只是尝试使用 open graph 方法而不是 feed 并覆盖 og 属性,见下文:

FB.ui({
            method: 'share_open_graph',
            action_type: 'og.shares',
            action_properties: JSON.stringify({
                object : {
                   'og:url': 'http://astahdziq.in/', // your url to share
                   'og:title': 'Here my custom title',
                   'og:description': 'here custom description',
                   'og:image': 'http://apps.investis.com/Dharmendra/fbPOC/south.jpg'
                }
            })
            },
            // callback
            function(response) {
            if (response && !response.error_message) {
                // then get post content
                alert('successfully posted. Status id : '+response.post_id);
            } else {
                alert('Something went error.');
            }
        });

这对我有用,因为我可以发布带有标题和描述的自定义图片。

【讨论】:

    【解决方案2】:

    我自己也遇到过这个问题。 经过一番研究,我找到了这个解决方案:

    www.facebook.com/sharer.php?caption=[caption]&description=[description]&u=[website]&picture=[image-url]

    您可以使用 JavaScript window.open 来模拟这样的行为:

    这是一个工作示例: https://jsfiddle.net/ovidiu_turean/mhuexvjL/

    <button onclick="myFunction()">Try it</button>
    
    <script>
    function myFunction() {
      window.open('https://www.facebook.com/sharer.php?title=ThisIsAtitle&description=ThisIsAdesc&u=https://www.google.ro&picture=https://wallpapers.wallhaven.cc/wallpapers/full/wallhaven-526588.jpg', 'Share', 'scrollbars=yes,resizable=yes,toolbar=no,menubar=no,scrollbars=no,location=no,directories=no,width=300, height=300, top=300, left=300' );
    }
    </script>
    

    【讨论】:

    • facebook 刚刚删除了 sharer.php 端点。所以我的例子(如上所述)不再工作了
    • 他们没有删除sharer.php,但它只将url作为参数。那是多年以来的事了。
    【解决方案3】:

    https://developers.facebook.com/docs/apps/changelog#v2_9

    自定义参数不再可能,共享 URL 仅从网站上的 Open Graph 标签中获取数据,每个 URL 的 Open Graph 标签需要是静态的。否则,您可以共享带有任何标题/描述的任何 URL,这可能会产生误导。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      相关资源
      最近更新 更多