Facebook 点赞框出现错误:在调用 FB.init() 之前调用了 FB.getLoginStatus()。

7

我在我的主页上使用了“Facebook 点赞框”模块:

<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.init()之前调用了FB.getLoginStatus()

我刚刚阅读了其他对话,其中我看到“您需要异步加载API”,我按照他们的说明操作了,但没有结果。

我该如何解决这个问题?


这可能是一个漏洞:现在我们可以在不创建应用程序的情况下访问网站的见解。参见:https://developers.facebook.com/bugs/413087498764232?browse=search_50d2bd95ef9230a19542503 - Ujjwal Singh
可能是重复的问题:在调用FB.init()之前调用FB.getLoginStatus() - John Conde
1个回答

9
这是因为你在Facebook设置的URL中没有添加appId。
请查看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不会调用其初始化功能,而是直接调用.getLoginStatus()
因此,去创建一个适用于您网站的应用程序,并将应用程序ID添加到代码片段中以消除此错误。
希望这可以帮助!

我尝试从你的网站上获取代码,但是我收到的代码和我发布的代码一样,没有包含APP_IP。请问我在哪里可以获得APP_ID? - jack.cap.rooney
1
我一直在遇到同样烦人的JS错误。我刚刚使用那个页面重新生成了FB喜欢的代码,但在URL中没有提及app_id。 "//connect.facebook.net/en_US/all.js#xfbml=1"。 - mpoisot
1
mpoisot - 你需要为你的页面创建一个应用程序(通过上面的链接),然后,在使用该帐户登录时,生成器应该添加APP_ID。 - Jules Copeland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接