我在我的主页上使用“facebook like box”模块:
<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/it_IT/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
我在body
标记之后立即放置此代码,并将其放在左侧:
<div class="fb-like-box fb-box-laterale" href="http://www.facebook.com/RistorantiRomaRisto.it" data-href="http://www.facebook.com/platform" data-width="190" data-height="380" data-show-faces="true" data-stream="false" data-header="true"></div>
所有工作都已完成,但我在控制台中收到此错误:FB.getLoginStatus() called before calling FB.init()
我刚刚阅读了其他的对话,其中我读到“你需要异步加载api”,我按照他们的指示没有结果。
我该如何解决?
答案 0 :(得分:9)
这是因为您没有将appId添加到您为Facebook设置的网址。
请参阅Facebook在此处生成的完整代码:https://developers.facebook.com/docs/reference/plugins/like/
正如您所见,网址的编写方式如下://connect.facebook.net/fr_CA/all.js#xfbml=1&appId=YOUR_APP_ID
此appId的存在会自动使用基本应用设置调用FB.init()
。但是当你删除它时,FB并没有调用它的init函数,而是直接调用.getLoginStatus()
。
因此,请为您的网站创建一个应用,并将应用ID添加到代码段中,以便删除此错误。
希望这有帮助!