32

我有一个可以在 iOS 和 Android 上运行的 Phonegap 应用程序。该应用程序具有 Facebook 登录功能,该功能直到几天前才有效。我们的一些 beta 测试人员报告了“无法完成 com.facebook.sdk 错误 2 的操作”错误。这些测试人员的设备各不相同:iPhone 5、iPhone 4s、iPod Touch、iOS 5.1.1 和 iOS 6.0。

我们使用最新的 Facebook SDK 和 Phonegap Facebook 登录插件 ( https://github.com/davejohnson/phonegap-plugin-facebook-connect/ )。

我做了一些研究,发现可能发生此错误的原因如下:

  • 我的 info.plist 文件中的 BundleIdentifier 和 BundleURLName 与我的 Facebook 应用程序设置中 Native iOS 应用程序下的 Bundle ID 不匹配。
  • 该应用程序仍处于沙盒模式
  • 该应用在 Facebook 设置中被禁用(设备设置 -> Facebook -> 允许这些应用使用您的帐户)。
  • iOS 6.0 不允许同时请求读写权限(不确定我是否有这个权限)。

情况如下:

这是一个非常不一致的错误(在我的情况下)。如果我在“允许这些应用程序使用您的帐户”中关闭应用程序(在我的情况下,应用程序在此处列出),我只能自己重现错误,但我可以通过再次允许应用程序轻松修复错误。目前大多数测试人员(不再)没有这个错误,但错误仍然存​​在于 iPod 上(该应用程序也未在“允许这些应用程序使用您的帐户”中列出)。

有谁知道为什么我有这个错误?

4

9 回答 9

18

事实证明:com.facebook.sdk 错误 2 可以转化为许多事情。我正在寻找某种 Facebook SDK 错误翻译表,但我找不到。就我而言: com.facebook.sdk 错误 2 发生是因为连接超时。收到此错误的用户网络/WiFi 连接不良

我们实施了一个错误记录系统,每次登录 Facebook 时发生错误时都会记录错误详细信息。在这些日志中,我们可以看到经常发生 com.facebook.sdk 错误 2,但每次用户在几秒钟后尝试再次登录时,它都会得到解决。

这可能是由于我无法找到正确的文档,但我对这些 SDK 错误的模糊性感到非常沮丧。有很多关于权限询问的文档(这可能导致 com.facebook.sdk 错误 2),但显然这个错误可能是由更多的事情引起的。很高兴看到这也记录在某个地方。

于 2013-03-05T11:15:03.483 回答
6

这发生在我正在使用的应用程序中。我可以通过转到我的 iPhone 设置,选择 Facebook,点击我的名字,然后单击“删除帐户”来绕过它。

之后,我可以毫无问题地使用该应用程序登录。

我回到设置 | facebook 并重新提交了我的凭据。

该应用程序仍然可以正常工作。

于 2013-05-15T19:21:20.513 回答
5

当我忘记检查 Native iOS App(在 Facebook 开发者页面中)并输入我的 Bundle ID 时,我遇到了这个错误,这与 Xcode 项目中的 Bundle 标识符相同。(最后包括你的项目名称。)我还在 Facebook 开发者页面中设置了启用沙盒模式的设置。我也禁用了沙盒模式来完成这项工作。

于 2013-06-12T06:09:23.480 回答
4

就我使用旧的 iOS 5.0 以获得更大的设备覆盖率而言,我一直在弄清楚这个错误的原因。我刚刚通过 facebook 请求调试收到错误 400。所以最后,我发现原因是 FBSession 的未知FBSessionDefaultAudience6.0+ 进行测试,原生 facebook api 给了我一个错误原因)。当我使用

+ (BOOL)openActiveSessionWithPublishPermissions:(NSArray*)publishPermissions
                                defaultAudience:(FBSessionDefaultAudience)defaultAudience
                                   allowLoginUI:(BOOL)allowLoginUI
                              completionHandler:(FBSessionStateHandler)handler;

这个错误终于消失了。

于 2013-04-23T16:13:32.673 回答
1

首先尝试:

Go to Settings app -> Facebook -> Your App -> Switch it off and back on again.

这对我有用,并且不需要我实际删除 fb 帐户并按照@seans23 的建议重新登录。如果它不起作用,我会尝试下一次,但这显然在重置状态方面确实有技巧。

于 2014-06-10T07:14:18.280 回答
1

这种方法对我有用。(iOS 8)

上下文:

  • FB“登录”按钮未在 Safari 中打开 FB 应用或 FB
  • 弹出 FB SDK 错误。2.
  • “我的应用程序”未显示在 FB 设置中以便启用使用。

解决方案:

  • 清除 Safari Web 缓存(可能是可选的)
  • 删除 Facebook 应用
  • 删除 Facebook 信使
  • 安装您的应用程序并登录

这个想法是删除Facebook 应用程序Messenger。

于 2014-10-11T15:28:34.150 回答
1

对我来说,原因是我在模拟器上测试我的应用程序。我想分享一张照片,但没有出现对话框,所以我插入了我的 iPhone,之后一切都很顺利!

于 2015-07-21T13:53:52.287 回答
0

我们有同样的问题。事实证明,原因实际上是在 FB 端超时,特别是如果在“FB 登录”页面仍然打开并且用户单击“取消”时发生此超时。在这种情况下,总是会重新调整错误 2。因此,如果您想重复并测试这种情况,只需在连接 FB 时单击“取消”按钮。

于 2013-07-16T09:27:28.463 回答
0

在我的情况下,我使用我的公司帐户创建了该应用程序,但忘记添加我的个人资料和开发人员角色。在我想通之后,一切都很顺利。

干杯。

于 2013-10-14T21:32:40.887 回答