好吧,我是 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">
欢迎用户。
或者即使您可以向我指出一些有用的教程,那也很棒!
谢谢
最佳答案
这是一个例子,当用户登录/注销时,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
}
抱歉,不知道有什么好的教程。
关于facebook - 检查用户是否登录新的 Facebook API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3348543/