我正在使用官方Facebook IOS API中的[facebook authorize:permissions]
使用单点登录连接到Facebook。
如果设备上未安装Facebook应用程序(Safari授权),我的代码可以正常工作。它也适用于安装了Facebook App的运行IOS5的设备(Facebook App授权)。
但是,在运行IOS 4.01(我会继续测试我的应用程序)的设备上,如果安装了Facebook应用程序,authorize
请求会启动Facebook应用程序,但当它返回时,我会在{{}}中获得以下回复{1}}
application: HandleOpenURL:
导致fb[MY_APP_ID]://authorize#error=unknown%5Ferror
被调用而我的应用程序失败。
删除并重新安装Facebook App和/或我自己的应用程序没有帮助。在我的应用程序之外注销Facebook:Facebook应用程序在这种情况下显示登录屏幕,但它返回相同的错误。
如果Facebook应用程序未安装在该设备上且Safari用于授权,则一切正常。
我在其他地方读到这个错误可能是由于我的Bundle ID定义不正确,但是(1)所有地方都正确定义了所有地方(我的info.plist,Facebook和iTunes Connect)和(2)事情确实有效在其他配置中。
在IOS 4.01下是否存在导致此行为的问题,或者我做错了什么? (此时我实际上做的不多,我只是发出一个Authorize请求并实现委托方法。)
答案 0 :(得分:0)
要纠正此行为,您应该明确禁止使用facebook应用进行Facebook授权。默认代码具有以下代码行 -
[self authorizeWithFBAppAuth:YES safariAuth:YES];
要禁止使用Facebook应用授权并仅使用safari强制授权,请将其更改为 -
[self authorizeWithFBAppAuth:NO safariAuth:YES]。