2011-11-23 24 views
0

我使用官方Facebook IOS API的[facebook authorize:permissions]来使用Single Sign On连接到Facebook。Facebook的授权不能在IOS 4.01下工作

如果Facebook应用程序没有安装在设备上(Safari授权),我的代码工作正常。它也适用于安装了Facebook应用程序并运行IOS5的设备(Facebook应用程序授权)。

但是,在运行IOS 4.01(我保持测试我的应用程序),如果安装了Facebook应用程序的设备上,该authorize请求启动Facebook的应用程序,但是当它返回时,我得到的application: HandleOpenURL:

答复如下
fb[MY_APP_ID]://authorize#error=unknown%5Ferror 

这导致fbDidNotLogin:被调用,我的应用程序失败。

删除和重新安装Facebook应用程序和/或我自己的应用程序并没有帮助。在我的应用程序之外,Facebook也不会退出Facebook:在这种情况下,Facebook应用程序会显示登录屏幕,但它会返回相同的错误。

如果未在该设备上安装Facebook应用程序并使用Safari进行授权,则一切正常。 (1)在所有地方(我的info.plist,Facebook和iTunes Connect)和(2)所有地方都正确定义了这个错误(012)在其他配置中工作。

是否有某些IOS 4.01不支持导致此行为,或者我做错了什么? (在这一点上,我没有做太多实际的工作,我只是放置一个Authorize请求并实现委托方法)。

回答

0

要纠正这种行为,您应明确禁止facebook应用使用Facebook授权。默认代码有以下一行代码 -

[self authorizeWithFBAppAuth:YES safariAuth:YES];

要禁止用facebook应用授权和仅迫使授权的Safari,它更改为 -

[自authorizeWithFBAppAuth:NO safariAuth:YES]。