Facebook分享按钮内部服务器错误

时间:2014-05-06 11:08:06

标签: facebook wordpress facebook-javascript-sdk

这是我的分享按钮:

<div style="float:right; margin-right: 10px;" class="fb-share-button" data-href="<?php the_permalink();?>" data-width="50" data-type="button_count"></div>

我使用Wordpress。

我收到此错误:

POST https://www.facebook.com/ajax/sharer/submit_page/ 500 (Internal Server Error) jZP0HIKXhfW.js:62

我在打开标签

后加入了Facebook SDK脚本
<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/lt_LT/sdk.js#xfbml=1&version=v2.0";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>

什么可能导致此错误?

2 个答案:

答案 0 :(得分:2)

我在其中一个网站上遇到同样的问题。还没有找到问题的解决方案,但在我的情况下,在此错误出现之前发生了两件事(FB sharer按钮之前工作正常):

  1. 在我页面的head部分中引入了og:标签(FB调试器显示所有这些标签都正常,调试工具中的页面看起来很好)

  2. 推出了twitter的分享按钮,这很好用

  3. 更新: 终于找到了问题:如果你有Facebook AppID,你看起来只能在FB上分享内容,所以你需要在https://developers.facebook.com/上创建一个 创建应用程序后,再次获取嵌入代码,AppId将自动包含在他们为您生成的代码段中。您的代码将如下所示:

    <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/en_US/sdk.js#xfbml=1&appId=3#########4&version=v2.0";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
    

答案 1 :(得分:0)

这似乎是代表Facebook的一个错误 - 因为他们的Like按钮插件不需要appId,他们的Share Button代码生成器不包含对它的任何引用。

那说我找到了一种不需要注册/ AppID注册的解决方法。

我所做的只是复制任何现有的AppID并将其填入sdk.js网址的末尾,如下所示:

<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/en_US/sdk.js#xfbml=1&version=v2.0&appId=XXX";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

(我用来代替上面“XXX”的那个,是来自Facebook自己网站的App ID。)

似乎没有进行验证,这再次让我相信这是Facebook制造的暂时错误。