【发布时间】:2013-03-25 21:51:49
【问题描述】:
背景
- 最近升级到 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=Error Domain=com.apple.accounts Code=7}
复制步骤
- 清除模拟器或从设备设置中手动删除 Facebook 帐户。
- 通过 Facebook 的 accounts/test-users 端点创建一个测试用户。
- 在设备设置中添加 Facebook 帐户。
- 通过 openActiveSessionWithReadPermissions 进行身份验证并接受权限对话框。
预期结果
- FBSessionStateHandler 块返回状态 == FBSessionStateOpen。
- 一个零 NSError。
实际结果
- FBSessionStateHandler 块返回错误。fberrorCategory == FBErrorCategoryUserCancelled 与上述用户信息跟踪。
解决方案尝试
- 我已按照this question 中列出的步骤进行操作;即检查我的包名称,确保我的应用类型设置为 Native/Desktop 并将我的 App Secret in Client 设置为 NO。
- 此外,我已确保我只要求读取权限(即电子邮件)。
- 我什至完全绕过了 Facebook SDK,尝试使用 ACAccountStore 实例进行身份验证并获得了相同的结果。
- 同样,普通用户一切正常(非测试);所以它必须与配置和最近的 3.2 更改有关。
【问题讨论】:
-
你找到解决办法了吗?
-
确保您的 Facebook 应用程序处于“沙盒模式”并使用“管理员”或“测试人员”Facebook 帐户。您可以在 developer.facebook.com 中将管理员/测试人员添加到您的 Facebook 应用程序
标签: ios facebook authentication ios6 facebook-ios-sdk