检查用户是否登录了新的Facebook API

时间:2010-07-27 22:32:11

标签: facebook

我是facebook api的新手,最近有人告诉我我正在使用旧api。

现在,我似乎无法弄清楚如何检查用户是否使用新的api登录我的网站。

我真正拥有的只是

<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
  FB.init({appId: '(appid)', status: true, cookie: true, xfbml: true});
  FB.Event.subscribe('auth.sessionChange', function(response) {
    if (response.session) {
      // A user has logged in, and a new cookie has been saved
    } else {
      // The user has logged out, and the cookie has been cleared
    }
  });
</script>

和登录按钮。

如果有人可以告诉我如何检查某人是否已登录,(或者它是否正确?)因为我希望它更改位于div中的登录按钮

<div id="fbuser">

欢迎用户。

或者即使你可以指出我的一些有用的教程,那也很棒!

由于

1 个答案:

答案 0 :(得分:21)

这是一个示例,当用户登录/注销时会自动调用fbLoginStatus()函数,因此您可以决定在那里显示哪个div。

<body>
<div id="fb-root"></div>
<script>
  function fbLoginStatus(response) {
     if( response.status === 'connected' ) {
        //user is logged in, display profile div
     } else {
        //user is not logged in, display guest div
     }
  }
  window.fbAsyncInit = function() {
    FB.init({appId: 'your app id', status: true, cookie: true, xfbml: true});
    FB.getLoginStatus(fbLoginStatus);
    FB.Event.subscribe('auth.statusChange', fbLoginStatus);
  };
  (function() {
    var e = document.createElement('script'); e.async = true;
    e.src = document.location.protocol +
      '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
  }());
</script>

现在,如果您需要检查用户是否立即登录(例如点击按钮):

if(FB.getSession() != null) {
   //logged user id: FB.getSession().uid
} else {
  //user is not logged in
}

抱歉,不知道任何好的教程。