我使用此代码检查用户是否拥有开放的Facebook会话并允许我的应用:
window.fbAsyncInit = function() {
FB.init({
appId : 'MY APP ID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
function checkLoginFB() {
FB.getLoginStatus(function(response) {
if (response.session) {
// logged in and connected user, someone you know
showLogout();
} else {
// no user session available, someone you dont know
showLogin();
}
});
}
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
}
但无论如何(用户是否登录Facebook并允许我的申请) 我得到response.session的空值。有谁知道为什么?
答案 0 :(得分:0)
似乎SDK未正确加载。如果你console.log
FB var,你会得到什么?
检查您的HTML中是否包含ID为fb-root
的div,并将放在之前的
答案 1 :(得分:0)
这里的问题是由于我在浏览器中关闭了“接受第三方Cookie”。 我甚至都没想过这个,因为我甚至都记不起来了。