调用控制台中的FB.init()错误之前调用FB.getLoginStatus()

我试图检查用户是否用我的应用程序login,但我得到一个“

调用FB.init()之前调用FB.init()

“在控制台中的错误setSize似乎工作(虽然不是完全1710高度,但肯定是在1500左右),所以我不明白为什么getLoginStatus()给出的错误。

我也加上检查与appID(删除下面),这是绝对正确的。 脚本包含在我的和div下面

 window.fbAsyncInit = function() { FB.init({ appId : 'APPID', // App ID status : true, // check login status cookie : true, // enable cookies to allow the server to access the session oauth : true, // enable OAuth 2.0 xfbml : true // parse XFBML }); FB.Canvas.setSize({width: 520, height: 1710}); FB.Canvas.setAutoResize(100); FB.getLoginStatus(function(response) { if (response.authResponse) { // logged in and connected user, someone you know alert("?"); } else { // no user session available, someone you dont know alert("asd"); } }); }; 

你需要asynchronous加载api。 尝试删除您的<script src="connect.facebook.net/en_US/all.js"></script>并更新您的JS到:

 <div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({ appId : 'YOUR_APP_ID', // App ID channelURL : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File status : true, // check login status cookie : true, // enable cookies to allow the server to access the session oauth : true, // enable OAuth 2.0 xfbml : true // parse XFBML }); // // All your canvas and getLogin stuff here // }; // Load the SDK Asynchronously (function(d){ var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; d.getElementsByTagName('head')[0].appendChild(js); }(document)); </script> 

哦,检查文件 !

如果你不提供一个appId到FB.init,也会发生这个错误。 例:

  FB.init({ appId: '' , channelUrl: '//domain/channel.html' , status: true , cookie: true }); 

将导致:

调用FB.init()之前调用FB.getLoginStatus()。