Facebook 登录被禁用,现在它抛出错误

Posted

技术标签:

【中文标题】Facebook 登录被禁用,现在它抛出错误【英文标题】:Facebook login was disabled and now it throws errors 【发布时间】:2021-12-21 22:35:18 【问题描述】:

我们有集成了 Facebook 登录的 androidios 应用程序。最近 Facebook 禁用了我们的应用程序,因为“在登录期间,您的应用程序崩溃或过度挂起”。然而,问题不在于我们应用程序的源代码,而在于我们的 FB 应用程序配置的某个地方。当我们尝试在我们的 FB 应用程序中使用作为开发人员或管理员的 Facebook 帐户登录时,我们收到来自 FB 的错误“不支持的请求”。当我们尝试使用任何其他 Facebook 帐户(包括 Facebook 测试帐户)登录时,我们会收到错误消息“App Not Setup: This app is still in development mode....”。请参阅随附的屏幕截图。

请注意,我们的应用已经上线,多年来一切正常,直到最近它被禁用。

有人知道可能是什么问题吗?

我在 FB 应用程序配置的权限和功能部分中注意到的一件事是,“电子邮件”和“公共个人资料”权限具有“标准访问权限”。当我尝试将其更改为“高级访问”时,它会询问我的密码,但访问级别并没有改变。它保持“标准访问”。

我们使用的是最新的 SDK 版本:

【问题讨论】:

“我们使用的是最新的 SDK 版本” - 至少对于 iOS 版本来说这不是真的,是吗? 我们应用中iOS SDK的版本是9.1.0。不是最新的,但是2021-02-25已经发布了,所以已经够新了。如果我错了,请纠正我,但我认为版本 8 以上的任何东西都应该是好的。至少在他们的 Android 更新指南中,他们给出的代码是:“implementation 'com.facebook.android:facebook-android-sdk:[8,9)'” 我好像也有类似的情况。最近从 FB 禁用的应用程序,目前我们正在上诉过程中。虽然我遵循了 FB 指南流程,但应用程序在 FB 登录期间仍然收到“不支持的请求”错误。似乎通过 web SDK 进行 FB 登录是行不通的。但在这种情况下,来自 FB 的上诉将不会被接受。 我也有类似的情况。使用最新的 iOS sdk 12.1.0。这似乎是特定应用程序 ID 的 SDK 或 Facebook 后端的问题,因为我测试了相同的应用程序,但我的代码没有更改,但使用新的 Facebook 应用程序 ID 登录并且它工作正常。但是 facebook 的支持真的一点帮助都没有,因为他们运行了一个测试登录流程并且他们响应了两次都不起作用但是他们导致了错误。 @MarinaBudkovets 不幸的是,facebook 支持根本没有帮助,他们没有技术答案或帮助。对于这种情况,我们继续的方式是制作一个新的 Facebook 应用程序并更改我们的应用程序以与新的应用程序一起使用。 (不幸的是,已经上线的应用程序无法运行,因此用户需要更新) 【参考方案1】:

我也遇到过During Login, your app is crashing or hanging excessively,现在它被 facebook 禁用了,我们仍然无法弄清楚问题的根源是什么

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:

在我们的案例中,与 facebook 的任何沟通都没有帮助。他们无法回应技术层面的问题并解释他们的错误信息的原因和内容。

因此,我们的解决方案是制作一个新的 Facebook 应用并设置我们的应用以使用这个新的 FB 应用 ID 并发布它们。

(这意味着拥有我们应用程序的所有用户最终都需要进行更新,以便他们可以使用 facebook 登录)

Android 和 iOS 以这种方式使用最新的 SDK 12+

【讨论】:

【参考方案3】:

我们通过使用旧版本的 Facebook SDK 解决了这个问题。 对于 Android,我们切换回版本 11.3.0。所以在 build.gradle 我们有:

实现'com.facebook.android:facebook-android-sdk:11.3.0'。

对于 iOS,我们不得不切换回 8.2.0 版。所以在 Podfile 中我们有:

pod 'FBSDKCoreKit' , '~> 8.2.0' pod 'FBSDKLoginKit', '~> 8.2.0'

问题似乎出在“openId”权限中,Facebook SDK 在幕后默默地将其添加到请求的权限列表中。在 iOS 上,我们发现这是在方法 -(NSDictionary *) logInParametersWithConfiguration: (FBSDKLoginConfiguration FBSDKServerConfiguration) 中的类 FBSDKLoginManager.m 中完成的

我们设法在未安装 Facebook 应用的 Android 设备上测试了问题出在哪里。在这种情况下,当您尝试登录时,Facebook SDK 会打开一个浏览器并且可以检查 URL。我们在 URL 路径参数中看到了“openId”参数。使用 URL 中的该参数,我们收到了来自 Facebook 的错误消息。然后我们从 URL 中去掉“openId”参数,重新提交请求,成功了。这给了我们线索来搜索这个“openId”参数在 Facebook SDK 中的哪个位置被添加到请求中,以及它首先出现在哪个版本的 SDK 中。

【讨论】:

以上是关于Facebook 登录被禁用,现在它抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Facebook IOS SDK 中禁用单点登录 (SSO)

Facebook 登录“异常抛出”错误通过 iOS 上的 React Native

FBSDKShareButton 即使在用户登录后也被禁用?

我在我的颤振应用程序中将 Paytm 全部用于一个 sdk。它抛出 PlatformException 错误

Facebook 开发者登录错误

用户尝试登录时,iOS App 中的 Facebook 集成问题