从登录开始,我就在我的网站上使用 Facebook 登录 Javascript SDK,但最近它在 Android Facebook 应用内浏览器中停止工作。当我单击登录按钮时,它会重新加载完整页面以转到授权页面,然后返回时什么也没有
Facebook 给出的示例也有同样的问题,甚至使用 FB.login 函数和 Facebook 登录按钮(https://developers.facebook.com/docs/facebook-login/web/login-button)进行了测试。他们两个得到了相同的结果。它只是刷新页面。
示例代码:
<script>
function LoggedFb(){
FB.login(function (response) {
FB.api(`/me?fields=id,email&access_token=${response.authResponse.accessToken}`, function
(userResponse) {
alert(userResponse.email);
});
}, { scope: 'email' })
}
</script>
该代码适用于除 Android Facebook 应用内浏览器以外的所有平台。
谢谢。
最佳答案
对我来说,它一直在循环:登录、刷新并重试,但从不登录。
我能够通过使用 FB.getLoginStatus
而不是仅仅使用 FB.login
来解决这个问题。
如果用户已经通过 fb 登录,它将通过。如果没有,将进行一次刷新,然后登录即可。
如果有人能解决这个问题,我将不胜感激,这样根本就不会刷新。
示例代码:
function signIn() {
FB.getLoginStatus((response: any) => {
if (response.status !== 'connected') {
return FB.login((response: any) => {
handleFbResponse(response);
}, {
scope: 'public_profile,email',
enable_profile_selector: true,
auth_type: 'rerequest',
return_scopes: true
});
} else {
handleFbResponse(response);
}
});
}
function handleFbResponse(response) { ... }
关于javascript - Facebook 登录在应用程序浏览器中的 Android Facebook 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59135674/