Facebook应用程序安装后身份验证失败(iOS)

13
我刚开始遇到了Facebook Connect身份验证的问题。如果我安装了iOS应用程序的版本3.4.4,我的委托的fbDidNotLogin方法会被调用,并显示一个错误消息:“用户拒绝了您的请求”。当我卸载FB应用程序时,身份验证正常工作。还有其他人遇到这个问题吗?有谁知道我如何规避这个错误?
这是我对Facebook对象的调用:
[[app facebook] authorize:[NSArray arrayWithObjects:
                           @"publish_stream", @"offline_access", nil]
                           delegate:app];

2
更新:我从今天下载的最新示例应用程序中也遇到了相同的行为。我插入我的应用程序ID,但示例应用程序的fbDidNotLogin委托方法始终被调用。 - Steve Liddle
请您也能够查看一下这个链接吗:http://stackoverflow.com/questions/30612701/ios-facebook-sdk-your-apps-facebook-login-is-broken - iYoung
4个回答

15

请确保您的应用程序包标识在您的Facebook应用页面上设置正确。

我认为他们刚刚开始强制执行这项规定,这就是为什么最近出现故障的原因。

您可以通过进入Facebook上的应用程序设置,并从获取应用程序ID的屏幕点击“编辑设置”来更改此设置。 “移动本机”部分将允许您更改iOS捆绑标识符以匹配您在Info.plist中拥有的Bundle Identifier。

希望这对某些人有所帮助! 请注意,您可以使用最新的Facebook应用程序使其正常工作,可能是像上面描述的配置问题。


1
太好了,感谢你的指引。iOS Bundle ID 是区分大小写的,这就是我的问题所在。奇怪的是,它的行为取决于你安装了哪个版本的 FB 应用程序。我希望这种强制执行是 Facebook 服务器端逻辑的功能,而不是客户端的。 - Steve Liddle
@Steve - 这个验证需要客户端支持,因为只有客户端才能发送(或接收)bundle-id进行验证。强制执行也可以在服务器端完成。只是他们允许旧版本的FB应用程序工作而不必对其他应用程序进行bundle-id验证。否则,每次安装iOS FB应用程序都必须更新任何其他FB连接的应用程序才能正常工作,这显然是不可取的。 - brahmana
这很有道理,尽管他们一直应该发送捆绑标识信息。而且显然他们仍然不会将捆绑标识发送到非应用程序身份验证实现,因此它是不一致的。然而,我仍然对Facebook感到不满,因为(1)未能通过电子邮件向开发人员发送政策更改,提前让我们知道要检查什么(他们肯定知道我们的电子邮件地址),以及(2)提供非描述性错误消息(“用户拒绝了您的请求”——不,如果它是“iOS Bundle ID不匹配”,那就很容易追踪)。 - Steve Liddle
@Corn Puff 你能否也检查一下这个问题:http://stackoverflow.com/questions/30612701/ios-facebook-sdk-your-apps-facebook-login-is-broken - iYoung

4
我可以确认我在这里遇到了相同的问题。 我回溯了一下,发现 Facebook 应用程序正在使用此查询字符串在 URL 中打开我的应用程序:

error_reason=user%5Fdenied&error=access%5Fdenied&error_description=The%2Buser%2Bdenied%2Byour%2Brequest%2E%3F%5F

很不幸,我想我们除了等待外没有别的办法了 :S

很遗憾,对我来说,使用webView替代方案连接应用程序并不是一个解决方案。我认为通过向苹果发送更新来使Facebook集成变得更糟(对于已在Facebook应用中登录的用户来说更容易)并不是一个好主意:( - Javier Soto

1

很明显,但如果您的应用程序被沙盒化,则需要确保使用它登录的每个人在Facebook应用程序设置中都是“测试人员”或更高级别。 :-$


0
正如本帖所指出的那样,您可以强制FBConnect使用Safari对话框而不是快速应用程序切换到已安装的FB应用程序。只需注释掉Facebook.m中调用FB应用程序的代码块即可。
这是绕过FB错误的一种方法,直到他们修复他们的应用程序。这不是理想的解决方案,但它有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接