在调用FB.init()之前调用FB.getLoginStatus()
我在我的控制台中有这个消息
FB.getLoginStatus() called before calling FB.init(). 我的代码
 <div id="fb-root"></div> <script> // Load the SDK Asynchronously (function(d){ var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = \"//connect.facebook.net/fr_FR/all.js#xfbml=1\"; ref.parentNode.insertBefore(js, ref); }(document)); </script> <div class="fb-like" data-send="false" data-layout="button_count" data-width="100" data-show-faces="false"></div> 
我不明白为什么。 我只有一个这个Facebook的电话,就像我所有网站上的插件一样。
简短的回答
 添加&status=0到您的js.src URL使警告消失,即: 
 //connect.facebook.net/fr_FR/all.js#xfbml=1&status=0 
完整答案
 如果在散列(#)符号之后提供参数, FB.init()将在加载时由facebook脚本内部调用。 这里xfbml ,所以FB.init() 。 
(源代码: http : //connect.facebook.net/fr_CA/all/debug.js line 8699在这篇文章的时间)
 如果未明确提供,则使用init()的默认参数: status arg default为true – 这会使FB脚本在启动时调用getLoginStatus() ,该脚本会因为该函数调用需要应用程序标识而抱怨。 
FB社交插件不需要应用程序ID – 它们被渲染成源自facebook.com的iframe,所以FBlogin状态和cookie可以被访问。
  FB开发者社交插件部分的“获取代码”向导生成一个带有xfbml参数的URL,它应该用status=0参数来更新。 
如果在执行解决scheme后看到“无效的应用程序ID”的警告
https://stackoverflow.com/a/16593474/1428052
然后将appId添加到您的js.src URL以使其适用于您,即:
//connect.facebook.net/en_US/all.js#xfbml=1&status=0&appId=YOUR_APP_ID
这个appId的存在,将自动调用FB.init()与基本的应用程序设置。
警告:下面有一些猜测。 如果不行,我可以删除它。
我假设问题在于加载SDKasynchronous,但喜欢button内联。 然后,在加载脚本之前,Likebutton可能会调用getLoginStatus。 您可以通过注释脚本来asynchronous加载SDK来testing/validation,而是将其作为普通脚本标记包含在页头中。
当然,这只是简单的testing方法。 如果您可以validation问题所在,则解决此问题的“正确”方法可能是确保在加载SDK之前,Likebutton不会出现在页面上。
 我在这里回答了类似的SO问题。 
 实际上,如果你还看不到Likebutton,那么这个问题就是另一个问题的完全重复。 
在我的情况下,我看到控制台错误,但我也看到了Likebutton。
 您需要在调用fblogin状态函数之前调用FB.init函数 
  <div id="fb-root"></div> <script src="//connect.facebook.net/en_US/all.js"></script> <script> FB.init({ appId : 'YOUR APP ID', status : true, // check login status cookie : true, // enable cookies to allow the server to access the session xfbml : true, // parse XFBML oauth : true }); // Load the SDK Asynchronously (function(d){ var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = \"//connect.facebook.net/fr_FR/all.js#xfbml=1\"; ref.parentNode.insertBefore(js, ref); }(document)); </script> 
我得到它使用这个代码工作:
 <!--[if IE]> <script src="https://connect.facebook.net/pt_BR/all.js?xfbml=1" type="text/javascript"></script> <![endif]--> <script src="https://connect.facebook.net/pt_BR/all.js#xfbml=1" type="text/javascript"></script> <div class="fb-like" data-href="https://www.myurl.com" data-send="true" data-layout="button_count" data-width="50" data-show-faces="false"></div>