即使用户已连接,Facebook Javascript SDK FB.getLoginStatus也会返回空会话

时间:2011-03-13 18:59:46

标签: javascript facebook session

我使用此代码检查用户是否拥有开放的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的空值。有谁知道为什么?

2 个答案:

答案 0 :(得分:0)

似乎SDK未正确加载。如果你console.log FB var,你会得到什么?

检查您的HTML中是否包含ID为fb-root的div,并将放在之前的

答案 1 :(得分:0)

这里的问题是由于我在浏览器中关闭了“接受第三方Cookie”。 我甚至都没想过这个,因为我甚至都记不起来了。