Facebook 登录在 Android 应用程序浏览器中的 Facebook 中不起作用
Posted
技术标签:
【中文标题】Facebook 登录在 Android 应用程序浏览器中的 Facebook 中不起作用【英文标题】:Facebook login is not working in Andriod Facebook in app browser 【发布时间】:2019-12-02 09:12:20 【问题描述】:从一开始,我就在我的网站上使用 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 应用内浏览器以外的所有平台。
谢谢。
【问题讨论】:
我遇到了完全相同的问题,但仅限于 Android 9 设备。能否请你确认?你找到解决办法了吗? @A.I.目前还没有解决这个问题,目前我已经实现了通过facebook手动登录。 谢谢。由于 Facebook 提供的示例也有同样的问题,我认为这应该是应用内 Facebook 浏览器的错误。我最近向 Facebook 报告了这个错误。如果您找到解决方案,请在此处分享。我也会这样做。谢谢。 是的,它是由于 Facebook Android 应用程序的最近更新,由于令牌请求刷新页面所致。 【参考方案1】:对我来说,它一直在循环:登录、刷新,然后再试一次,但从不登录。
我能够通过使用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) ...
【讨论】:
以上是关于Facebook 登录在 Android 应用程序浏览器中的 Facebook 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Facebook 登录在 Android 应用程序浏览器中的 Facebook 中不起作用
facebook 登录 Android 后应用程序关闭(Facebook SDK 版本 4.6.0)?