我使用此代码来检查用户是否有打开的 Facebook session 并允许我的应用程序:
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 为空值。有谁知道为什么吗?
最佳答案
SDK 似乎未正确加载。如果您 console.log
FB var,您会得到什么?
检查您的 HTML 中是否有一个 ID 为 fb-root
的 div,并将其放置在您发布的 JS 之前。
关于javascript - 即使用户已连接,Facebook Javascript SDK FB.getLoginStatus也会返回空 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291600/