2011-08-26 82 views
0

我使用Facebook JavaScript SDK来认证我的网站上的用户。这是我遇到麻烦的场景。注册Facebook导致与JS SDK的奇怪行为

如果我在我的网站和Facebook上登录,那么我在Facebook上注销,似乎FB.getLoginStatus没有被调用。进一步,如果我点击我的登录按钮(即调用FB.login),然后放火引发错误"FB.login() called when user is already connected."

在上述所有的顶部,如果我设法得到它没有返回值的Facebook的用户。

所以总之,我不能得到facebook用户,但我也不能拨打FB.login,所以我一无所有。

我失去了一些东西在这里?

回答

0

如果有人在facebook.com上结束他们的会话,他们在您网站上的会话仍然存在 - 但如果您尝试使用该会话获取或发布数据到Facebook,它可能会失败。如果某人从facebook.com登出facebook,您可以通过订阅auth.sessionChange或auth.logout(https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/)来处理此问题。

FB.Event.subscribe('auth.sessionChange', function(response) { 
    alert('The status of the session is: ' + response.status); 
}); 

如果你发现有人已注销Facebook的直接,而使用你的网站,你可以从你的会话与

FB.logout() 

之后发生这种情况,您的FB.login(日志出来)不会再犯这个错误了。错误是说当你已经在那个页面上有一个会话时你正在尝试运行FB.login()(因为记住会话只在facebook.com上清除,而不是在你的站点上)