在调用FB.init()之前,Facebook就像调用FB.getLoginStatus()一样出错了

时间:2012-10-13 14:11:57

标签: facebook html5 facebook-like facebook-javascript-sdk

我在我的主页上使用“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”,我按照他们的指示没有结果。

我该如何解决?

1 个答案:

答案 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添加到代码段中,以便删除此错误。

希望这有帮助!