背景
- 最近升级到 Facebook SDK 3.2
- 在设备和模拟器上测试(iOS 5.1到6.1)
- 仅在尝试对 Facebook测试用户进行身份验证时出现错误。
错误
Facebook 服务器无法完成此访问请求:暂时无法代表 XXXXXX 进行 API 调用。
UserInfo={com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:SystemLoginCancelled, com.facebook.sdk:ErrorInnerErrorKey=错误域=com.apple.accounts 代码=7}
重现步骤
- 清除模拟器或从设备设置中手动删除 Facebook 帐户。
- 通过 Facebook 的accounts/test-users端点创建一个测试用户。
- 在设备设置中添加 Facebook 帐户。
- 通过 openActiveSessionWithReadPermissions 进行身份验证并接受权限对话框。
预期结果
- FBSessionStateHandler 块返回状态 == FBSessionStateOpen。
- 一个零 NSError。
实际结果
- FBSessionStateHandler 块返回 error.fberrorCategory == FBErrorCategoryUserCancelled 并带有上述用户信息跟踪。
解决方案尝试
- 我已按照此问题中概述的步骤进行操作;即检查我的包名称,确保我的应用程序类型设置为Native/Desktop并将我在客户端中的应用程序机密设置为 NO。
- 同样,我确保我只要求读取权限(即电子邮件)。
- 我什至通过尝试使用ACAccountStore实例进行身份验证来完全绕过 Facebook SDK,并获得了相同的结果。
- 同样,对于普通用户来说一切正常(非测试);所以它必须与配置和最近的 3.2 更改有关。