Facebook共享在2016年不起作用

Facebook Share not working in 2016

本文关键字:不起作用 2016年 共享 Facebook      更新时间:2023-09-26

作为前奏,我应该说,我在过去的StackOverflow上发现了很多关于这个问题的例子,但由于FB每年左右对贬低方法的坚持,现在的答案要么很复杂,要么答案不透明(通常以"提示"为幌子),对FB自己的文档没有什么帮助,作为一个原则问题,它似乎抵制完全可行的例子。因此,2016年的情况再次出现了问题。

我对Javascript的知识水平不高。这就是我到目前为止所拥有的。FB验证为ok的大量OpenGraph标签,例如

<meta property="fb:admins"             content="12345..." />
<meta property="fb:app_id"             content="67890..."/>
<meta property="og:site_name"          content="Renegades Alliance" />
<meta property="og:url"                content="http://www.renegadesalliance.eu" />
<meta property="og:type"               content="website" />
<meta property="og:title"              content="Renegades Alliance" />

等等,所有这些都是有效的。然后在标题中,我有FB的SDK如下:

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '123...',
      xfbml      : true,
      version    : 'v2.6'
    });
  };
  FB.ui({
  method: 'share',
  href: 'https://developers.facebook.com/docs/',
}, function(response){});
  (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>

请注意,在中间,我添加了FB.ui功能,这是我从FB文档中获得的,必要时可以在我的页面上打开共享对话框-这是这项工作的目标,尽管它实际上没有说放在哪里,所以我希望这是正确的领域。

最后,我需要某种联系来启动对话。我将把这个放在Facebook图标的自定义版本周围,所以它需要是某种超链接。我已经尝试了我能想到的一切,比如:

<a onClick="FB.ui()" href="#"> Will this work?</a>

但没有任何东西能起到远程作用。我已经做了两个星期了,这完全令人沮丧。大约3年前,我确实在另一个网站上做过这个工作,但FB改变了它,一切又坏了。我真的已经无计可施了,试图做一件本应简单的事情,所以任何准确和最新的见解/帮助都将不胜感激。提前谢谢。

试试这个:

保留您的opengraph标签

打开<BODY>标签后立即放入:

<div id="fb-root"></div>
<script>(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/pt_BR/sdk.js#xfbml=1&version=v2.6&appId=1536573183291630";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

(请注意,我的语言是"pt_BR"。请更改为您的语言)

以及您希望按钮显示的任何位置:

<div class="fb-share-button" data-href="https://primeiralinha.com.br/home2/noticia_online.php?noticia_online=367" data-layout="button_count" data-mobile-iframe="true"></div>

datahref属性是您应该更改为url的属性。

有关更多信息,请参阅"共享按钮"文档:https://developers.facebook.com/docs/plugins/share-button/

编辑:

考虑这个代码:(复制整个代码并将其保存为try.html或任何您喜欢的htmhtml扩展名)

<html>
<head>
    <title>Your Website Title</title>
    <!-- You can use Open Graph tags to customize link previews.
    Learn more: https://developers.facebook.com/docs/sharing/webmasters -->
    <meta property="og:url"           content="http://www.your-domain.com/your-page.html" />
    <meta property="og:type"          content="website" />
    <meta property="og:title"         content="Your Website Title" />
    <meta property="og:description"   content="Your description" />
    <meta property="og:image"         content="http://www.your-domain.com/path/image.jpg" />
</head>
<body>
    <!-- Load Facebook SDK for JavaScript -->
<div id="fb-root"></div>
<script>(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/pt_BR/sdk.js#xfbml=1&version=v2.6&appId=1536573183291630";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
    <!-- Your share button code -->
<div class="fb-share-button" data-href="https://primeiralinha.com.br/home2/noticia_online.php?noticia_online=367" data-layout="button_count" data-mobile-iframe="true"></div>
</body>
</html>

它应该工作