1

我正在尝试通过 javascript sdk 获取当前用户登录状态,但出现以下错误:

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

这是我的代码:

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : '000000000000000000', // App ID
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

        console.log(FB.getLoginStatus); //THIS DOESN'T WORK!!

  };

  // 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/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));
</script>

有任何想法吗?

4

3 回答 3

1

看起来 FB.init 不是同步调用(意味着它在实际完成之前返回)。一个快速的谷歌出现了这个如何检测facebook的FB.init何时完成

于 2012-04-06T14:40:35.413 回答
0

我遇到了同样的问题,并通过删除#xfbml=1 导入的 URL 来解决它:

//connect.facebook.net/en_US/all.js#xfbml=1

希望这可以帮助

于 2013-08-13T10:29:17.753 回答
0

您只是忘记了 () 来调用 javascript 方法。

console.log(FB.getLoginStatus);

console.log(FB.getLoginStatus());
于 2014-01-19T20:26:19.123 回答