这是我的分享按钮:
<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>
什么可能导致此错误?
答案 0 :(得分:2)
我在其中一个网站上遇到同样的问题。还没有找到问题的解决方案,但在我的情况下,在此错误出现之前发生了两件事(FB sharer按钮之前工作正常):
在我页面的head部分中引入了og:标签(FB调试器显示所有这些标签都正常,调试工具中的页面看起来很好)
推出了twitter的分享按钮,这很好用
更新: 终于找到了问题:如果你有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制造的暂时错误。