由于嵌入式浏览器,Android Facebook 分享对话框阻止登录

Posted

技术标签:

【中文标题】由于嵌入式浏览器,Android Facebook 分享对话框阻止登录【英文标题】:Android Facebook Share Dialog Blocks Login Due To Embedded Browser 【发布时间】:2021-09-02 15:43:41 【问题描述】:

我正在使用 cordova-plugin-facebook-connect 插件从 Facebook 启动共享对话框。 ios 运行良好,安装应用后 android 运行良好。

在 Android 上,如果未安装应用程序,它会尝试与嵌入式网络浏览器共享。输入我的电子邮件和密码后,我收到一条错误消息,指出从嵌入式浏览器登录 Facebook 已被禁用。我正在使用最新版本的插件,这应该意味着最新的 Facebook Android SDK

我查看了我们的业务仪表板并确保允许嵌入式登录: ...但这提到了 OAuth,所以也许它不相关。我已将调试和生产密钥哈希上传到仪表板

我在 Facebook 文档上没有找到任何内容,也没有从 Facebook 开发者社区得到答复。

总结一下:

如果安装了应用程序,一切都很好。如果没有该应用程序,它会使用嵌入式浏览器,但 Facebook 会阻止登录。我很想知道为什么以及如何启用它。

更新:使用 Facebook 生成的测试用户有效

干杯

【问题讨论】:

您可以在生产环境中登录吗?我得到同样的错误。 运气好吗?不确定这是否是您的帖子,但在 FB 开发者论坛上存在同样的问题 -> developers.facebook.com/community/threads/195638179128499 是的——那是我的帖子。到目前为止没有运气 【参考方案1】:

按照 Facebook 的推荐,请将依赖项更新为

implementation 'com.facebook.android:facebook-android-sdk:[8,9)'

参考:

https://developers.facebook.com/docs/android/componentsdks/

https://developers.facebook.com/blog/post/2021/06/28/deprecating-support-fb-login-authentication-android-embedded-browsers/

【讨论】:

【参考方案2】:

Facebook 已经让大家知道他们正在弃用 Android 嵌入式浏览器上对 FB 登录的支持:

https://developers.facebook.com/blog/post/2021/06/28/deprecating-support-fb-login-authentication-android-embedded-browsers/

截至目前,他们正在阻止 High Risk 出现此错误的用户,并将从 8 月开始阻止所有人。他们的建议是使用更高版本的 SDK(8.2+)来避免这种情况

【讨论】:

【参考方案3】:

我还不能发表评论,所以我创建这个答案是为了询问您是否可以尝试删除所有(!)本地浏览器数据,即 Cookie 和本地存储等。这是第一件事当我读到“与另一个登录一起工作”时,我想到了

【讨论】:

问题是当用户使用需要 Facebook 登录的应用程序时。如果他们没有 Facebook 应用程序,那么他们将看到 webview 登录。在这种情况下,没有“cookies”或“本地存储”本身 - 卸载并重新安装应用程序将清除遗留的任何内容,但不幸的是,它并不能解决问题 是的,我的假设是 webview 是基于浏览器的,并且可能使用 cookie 或任何类型的本地存储。从理论上讲,它可能是使用 Android 默认浏览器来创建这个 web 视图——不过这只是一个疯狂的猜测。但是,如果不是这样,我很抱歉,我应该删除我的答案。【参考方案4】:

尝试安装其他浏览器,例如 Firefox,并将其设置为默认浏览器,然后使用您的 Facebook 凭据再次登录。它对我有用。我想问题出在chrome上。对我来说,当我将 Firefox 设置为默认浏览器时,它就起作用了。

【讨论】:

【参考方案5】:

如果用户已通过 facebook 启用 2 因素身份验证,则该问题已解决。 我现在已经用多个真实用户对此进行了测试,例如启用 sms-2fa 确实使用户能够使用嵌入式浏览器登录应用程序。如果用户在同一设备上安装了 facebook 应用程序并且已经使用 2fa 登录了 facebook 应用程序,则登录会照常进行。否则,facebook 会在登录时请求 2fa,但可以再次登录。

然而,我发现如果某些应用程序在 2fa 激活之前在带有 facebook 应用程序的手机上打开,并且这些应用程序需要重新启动才能再次尝试登录它们,则它们似乎会崩溃。

据此,我们可以假设 facebook 由于其风险评估而屏蔽了嵌入式浏览器。 2fa 在每个用户的安全选项中专门作为通过不安全浏览器登录的选项,遗憾的是,对于曾经在其应用程序中使用嵌入式浏览器的人来说,这似乎不是问题。

【讨论】:

【参考方案6】:

这也发生在我身上,但我已经解决了。

我刚刚卸载了我的 Facebook 应用程序并改用了我的浏览器。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案7】:

为了您的帐户安全,已禁用从嵌入式浏览器登录 Facebook。您可以通过更新您正在登录的应用程序并重试来继续。

【讨论】:

以上是关于由于嵌入式浏览器,Android Facebook 分享对话框阻止登录的主要内容,如果未能解决你的问题,请参考以下文章

Ionic:无法在Android上的iFrame中显示facebook嵌入式帖子

由于默认浏览器,Android 无法在 web 视图中实现 facebook 评论

在 Libgdx 中嵌入浏览器

仅使用弹出对话框的本机(iOS 或 Android)Facebook 登录?

Android + Facebook SDK:“由于应用名称不匹配,无法对应用进行身份验证。”

Facebook 登录在 Android 应用程序浏览器中的 Facebook 中不起作用