【问题标题】:Could not fulfill request (error code 7) via openActiveSessionWithReadPermissions with Facebook test users无法通过 openActiveSessionWithReadPermissions 与 Facebook 测试用户完成请求(错误代码 7)
【发布时间】:2013-03-25 21:51:49
【问题描述】:

背景

  • 最近升级到 Facebook SDK 3.2
  • 在设备和模拟器上测试(iOS 5.16.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}

复制步骤

  1. 清除模拟器或从设备设置中手动删除 Facebook 帐户。
  2. 通过 Facebook 的 accounts/test-users 端点创建一个测试用户。
  3. 在设备设置中添加 Facebook 帐户。
  4. 通过 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


【解决方案1】:

1) Facebook 3.1 SDK 拆分读取和发布权限。在第一次身份验证调用中仅使用读取权限(例如,电子邮件)。两者都使用会破坏它并导致该通用错误。 Facebook 的 SDK 似乎并没有真正做到它应该做的事情:回退到旧的身份验证方法。 David 告诉我更新的 Parse SDK 将使权限拆分更容易,但当然要由 Facebook 来修复他们 SDK 中的错误。

2) 独立地,在设备的“设置”中退出 Facebook,然后重新登录后,我遇到的问题似乎已经消失。可能是 iOS 集成中的故障? (但是,权限拆分问题在这里仍然适用。请确保您确实先阅读并稍后单独发布(例如,publish_actions),在您第一次真正需要它时。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    相关资源
    最近更新 更多