javascript - 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>
解决方案
根据文档,unknown
当 FB 无法确认用户是否已登录并授予您的应用程序权限时,状态就会发生。所以看起来这可能是接收该状态的正常情况,用户应该尝试再次登录。
另一件事是为什么您总是unknown
在第一个请求中获得此状态。不知道为什么会这样。
顺便说一句 - 我认为您使用的是旧版本的 Facebook API。(目前 v10 是最新的)
推荐阅读
- c# - 我无法返回结果,也无法从函数的主函数中获取值
- python - Conda 在 Mac 上安装 Python 3.x 和 2.7x
- algorithm - Go中Nor触发器逻辑门的实现
- android - 如何在 Android 中替换枚举?
- javascript - React 在尝试对数据进行排序时给出了太多渲染错误
- docker - podman-compose 无法撰写
- python - 从另一个 Cloud 项目调用 Firestore 数据库显示“权限错误”
- javascript - Mapbox 地图不会在主页上重新加载
- c# - 节奏游戏 - 在 Unity 中检查碰撞 + 性能
- javascript - 当我尝试输入时,我看不到输出的变化