安装 Facebook 应用程序的身份验证失败 (iOS)
Posted
技术标签:
【中文标题】安装 Facebook 应用程序的身份验证失败 (iOS)【英文标题】:Authentication Fails with Facebook App Installed (iOS) 【发布时间】:2011-08-31 13:49:03 【问题描述】:我刚刚开始发现 Facebook Connect 身份验证存在问题。如果我安装了 3.4.4 版的 ios 应用程序,我的代理的 fbDidNotLogin 方法会被调用,并显示“用户拒绝您的请求”的错误消息。当我卸载 FB 应用程序时,身份验证工作正常。还有人看到这个吗?有谁知道我如何绕过这个错误?
这是我对 Facebook 对象的调用:
[[app facebook] authorize:[NSArray arrayWithObjects:
@"publish_stream", @"offline_access", nil]
delegate:app];
【问题讨论】:
更新:我从今天下载的最新示例应用程序中得到了同样的行为。我插入我的应用 ID,并且始终调用示例应用的 fbDidNotLogin 委托方法。 您也可以看看这个吗:***.com/questions/30612701/… 【参考方案1】:确保您的应用程序包 ID 在您的应用程序的 Facebook 页面上正确设置。
我认为他们刚刚开始强制执行此操作,这就是它最近爆发的原因。
您应该能够通过进入 Facebook 上的应用设置并在您获取应用 ID 的屏幕上单击“编辑设置”来更改此设置。 “Mobile Native”部分将允许您更改 iOS Bundle ID 以匹配 Info.plist 中的 Bundle Identifier。
希望这对某人有所帮助!要知道,您可以使用最新的 Facebook 应用程序来实现这一点,这可能是与上述类似的配置问题。
【讨论】:
宾果游戏。感谢您的指点。 iOS Bundle ID 区分大小写,这是我的问题。奇怪的是,它的行为会根据您安装的 FB 应用程序版本而有所不同。我希望这种类型的强制执行是 Facebook 服务器端逻辑的功能,而不是客户端。 @Steve - 此验证需要客户端支持,因为客户端可以(并且必须)发送(或接收)bundle-id 以进行验证。执行很可能在服务器端本身。只是他们允许旧版本的 FB 应用程序工作,而无需对其他应用程序进行捆绑 ID 验证。否则,必须更新 iOS FB 应用程序的每个安装,以使任何其他连接 FB 的应用程序正常工作,这当然是不可取的。 这是有道理的,尽管他们应该一直在发送捆绑 ID 信息。而且他们显然仍然没有将捆绑 ID 发送到非应用身份验证实现,因此它是不一致的。但是,我仍然对 Facebook 不满意,因为 (1) 未能向开发人员发送有关政策变更的电子邮件,让我们提前了解要检查的内容(他们肯定知道我们的电子邮件地址),以及 (2) 提供非描述性错误消息(“用户拒绝了您的请求”——不,如果是“iOS Bundle ID 不匹配”,则很容易追踪)。 @Corn Puff 你也可以看看这个:***.com/questions/30612701/…【参考方案2】:我可以确认我在这里遇到了同样的问题。我回溯了一下,我看到 facebook 应用程序正在用 url 中的这个查询字符串打开我的应用程序:
error_reason=user%5Fdenied&error=access%5Fdenied&error_description=The%2Buser%2Bdenied%2Byour%2Brequest%2E%3F%5F
我想不幸的是,我们无能为力,只能等待:S
【讨论】:
不幸的是,使用 webView 替代方案使应用程序连接对我来说不是一个解决方案。我不认为通过向苹果发送更新来使 facebook 集成变得更糟(对于登录 facebook 应用程序的用户来说更容易)是一个好主意:(【参考方案3】:这很明显,但是如果您的应用程序是沙盒化的,那么您需要确保使用它登录的每个人都是 Facebook 应用程序设置中的“测试人员”或更高级别。 :-$
【讨论】:
【参考方案4】:正如this thread 中所指出的,您可以强制 FBConnect 使用 Safari 对话框,而不是快速应用程序切换到已安装的 FB 应用程序。只需注释掉 Facebook.m 中调用 FB 应用程序的代码块。
这是在他们修复应用程序之前绕过 FB 错误的一种方法。这不是一个理想的解决方案,但它确实有效。
【讨论】:
以上是关于安装 Facebook 应用程序的身份验证失败 (iOS)的主要内容,如果未能解决你的问题,请参考以下文章
在android中通过firebase进行Facebook登录时身份验证失败
如果我使用 X-FACEBOOK-PLATFORM 机制,XMPP 身份验证失败
使用 Objective-C 和 C++ 实现 X-FACEBOOK-PLATFORM 身份验证的身份验证失败
使用 Smack 集成 facebook 聊天时 SASL 身份验证失败