首页 > 解决方案 > FB Javascript 登录 SDK 的问题

问题描述

我的 FB 登录几乎可以正常工作。唯一的问题是当我第一次登录时,响应状态 === 未知。de 弹出窗口关闭并且没有重定向,因为状态未知,好的.. 第二次登录尝试我按下 fb 登录按钮,弹出窗口再次打开和关闭,并且重定向发生。在浏览器中有 2 个 fbsr_{appid} cookie。然后状态 === 已连接。

function fblogin() {
FB.init({
  appId      : '{ my app id }',
  cookie     : true, 
  xfbml      : true,  
  version    : 'v3.2'
});

FB.login(function (response) {

        console.log(response);

        if (response.status === 'connected') {  
            
        FB.api('/me',  { locale: 'en_US', fields: 'email,first_name,last_name,id' },
        function (response) {

              window.location.href = '/page_to_redirect_to?UserNAME=' + response.first_name + '%20' + response.last_name + '&UserEMAIL=' + response.email  + '&UserID=' + response.id;

        });
    }
}, {scope: 'email'});
}


 (function(d, s, id) {
   var js, fjs = d.getElementsByTagName(s)[0];
   if (d.getElementById(id)) return;
   js = d.createElement(s); js.id = id;
   js.src = "//connect.facebook.net/en_US/sdk.js";
   fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));


  <button onclick="fbLogin();" class="fb connect">Sign in with Facebook</button>

标签: javascriptoauthsdk

解决方案


根据文档unknown当 FB 无法确认用户是否已登录并授予您的应用程序权限时,状态就会发生。所以看起来这可能是接收该状态的正常情况,用户应该尝试再次登录。

另一件事是为什么您总是unknown在第一个请求中获得此状态。不知道为什么会这样。

顺便说一句 - 我认为您使用的是旧版本的 Facebook API。(目前 v10 是最新的)


推荐阅读