7

我在主页中使用模块“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”并且我按照他们的说明进行操作,但没有结果。

我该如何解决?

4

1 回答 1

9

发生这种情况是因为您没有将 appId 添加到为 facebook 设置的 url。

在此处查看 Facebook 生成的完整代码:https ://developers.facebook.com/docs/reference/plugins/like/

如您所见,url 是这样写的://connect.facebook.net/fr_CA/all.js#xfbml=1&appId=YOUR_APP_ID

这个 appId 的存在,将自动调用FB.init()基本的应用程序设置。但是当你删除它时,FB 并没有调用它的 init 函数,而是.getLoginStatus()直接调用。

因此,请为您的网站创建一个应用程序,并将应用程序 ID 添加到代码段以消除此错误。

希望这有帮助!

于 2012-10-13T18:47:20.977 回答