2010-09-19 72 views
1

我试图查看用户是否在我的网站上登录到FB。我在下面的代码,但不管我是否登录到我的FB帐户或FB.getLoginStatus响应总是返回null。FB.getLoginStatus总是返回null,无论用户是否登录到FB

<script type="text/javascript"> 
window.fbAsyncInit = function() { 
FB.init({appId: 'XXXXXXXXXXXXXXX', status: true, cookie: true, 
     xfbml: true}); 
FB.getLoginStatus(function(response) { 
    if (response.session) { 
    alert('Logged In'); 
    } else { 
    alert('Not Logged In'); 
    } 
}); 
}; 

(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> 
+0

你只是登录Facebook的网站,或与您的网站上的Facebook连接?你是否能够对FB api进行其他调用(如弹出登录表单)?之前工作过吗? – serg 2010-09-19 22:30:13

+0

刚登录FB网站。是的,我可以弹出登录表单并显示我的帐户图片。没有这是一个新的网站。 – Splashlin 2010-09-19 22:53:51

回答

2

所以事实证明这是对FB文档的误解。会话只会在用户连接到应用程序时返回。要看到,如果用户登录,但没有连接,你需要使用response.status

2

也许response.session已被弃用,从Facebook官方工作示例: 要确定用户是否连接到您的应用程序:

FB.getLoginStatus(function(response) { 
    if (response.authResponse) { 
    // logged in and connected user, someone you know 
    } else { 
    // no user session available, someone you dont know 
    } 
});