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

Facebook共享按钮内部服务器错误,facebook,wordpress,facebook-javascript-sdk,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> 我在打开标签后加入了Facebook SDK脚本 <div id="fb-root"></div> <

这是我的共享按钮:

<div style="float:right; margin-right: 10px;" class="fb-share-button" data-href="<?php the_permalink();?>" data-width="50" data-type="button_count"></div>
我在打开标签后加入了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>

(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src=“//connect.facebook.net/lt_lt/sdk.js#xfml=1&version=v2.0”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);

什么会导致此错误?

我的一个网站上有相同的问题。尚未找到问题的解决方案,但在我的案例中,在该错误出现之前发生了2件事(FB sharer按钮以前工作正常):

  • 在我的页面的标题部分引入了og:tags(FB debugger显示它们都正常,页面在调试器工具中看起来很好)

  • 推出了twitter的共享按钮,效果很好

  • 更新: 最终发现问题:如果你有Facebook AppID,你只能在FB上分享东西,所以你需要在FB上创建一个 创建应用程序后,再次获取嵌入代码,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>
    
    
    (功能(d、s、id){
    var js,fjs=d.getElementsByTagName[0];
    if(d.getElementById(id))返回;
    js=d.createElement;js.id=id;
    js.src=“//connect.facebook.net/en#u US/sdk.js#xfml=1&appId=3#;
    fjs.parentNode.insertBefore(js,fjs);
    }(文档“脚本”、“facebook jssdk”);
    
    这似乎是Facebook的一个缺陷,因为他们的同类按钮插件不需要appId,共享按钮代码生成器也不需要任何对它的引用

    也就是说,我找到了一个不需要注册/AppID的解决方案

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

    <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>
    
    
    (功能(d、s、id){
    var js,fjs=d.getElementsByTagName[0];
    if(d.getElementById(id))返回;
    js=d.createElement;js.id=id;
    js.src=“//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0&appId=XXX”;
    fjs.parentNode.insertBefore(js,fjs);
    }(文档“脚本”、“facebook jssdk”);
    
    (我用来代替上面的“XXX”的是Facebook自己网站上的一个应用程序ID。)


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

    我也有同样的问题。然而,没有提到在Facebook上需要AppID,这似乎是Facebook上的一个bug
    <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>