Facebook 登录在某些 iOS 设备上总是出错
Facebook Login always erroring out on some iOS devices
我有一个简单的应用程序,我在 iOS 上通过 Facebook SDK 集成了 Facebook 登录。当用户点击 "Signup With FaceBook" 按钮时,我有以下代码段:
// Open a session showing the user the login UI
// You must ALWAYS ask for public_profile permissions when opening a session
[FBSession openActiveSessionWithReadPermissions:@[@"public_profile", @"email"]
allowLoginUI:YES
completionHandler:
^(FBSession *session, FBSessionState state, NSError *error) {
这适用于大多数设备,但在某些设备上,此错误会随着 NSError 返回为:
Error Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed. (com.facebook.sdk error 2.)"
UserInfo=0x178467a40 {com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:SystemLoginCancelled,
com.facebook.sdk:ErrorInnerErrorKey=Error Domain=com.apple.accounts
Code=7 "The Facebook server could not fulfill this access request: The proxied
app cannot request publish permissions without having being
installed previously."
错误说我需要请求发布许可,但我请求的是 "public_profile" 和 "email" 我缺少什么?
更新:看起来在设备上失败是因为用户在“设置”中登录了 FaceBook。我希望 Facebook SDK 做正确的事情,而不是它以某种方式执行上述操作。我还需要其他什么来完成这项工作吗?没有实现 SocialKit 和 FaceBook SDK?
经过大量实验后发现问题,在权限中请求 "public_profile" 以某种方式使 iOS 在请求中请求 read/write 权限并触发上述错误。 - 有各种线程要求 read/write 权限失败。
只要求 "email" 就足够了,因为它隐含地获得了 public 配置文件。
我有一个简单的应用程序,我在 iOS 上通过 Facebook SDK 集成了 Facebook 登录。当用户点击 "Signup With FaceBook" 按钮时,我有以下代码段:
// Open a session showing the user the login UI
// You must ALWAYS ask for public_profile permissions when opening a session
[FBSession openActiveSessionWithReadPermissions:@[@"public_profile", @"email"]
allowLoginUI:YES
completionHandler:
^(FBSession *session, FBSessionState state, NSError *error) {
这适用于大多数设备,但在某些设备上,此错误会随着 NSError 返回为:
Error Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed. (com.facebook.sdk error 2.)"
UserInfo=0x178467a40 {com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:SystemLoginCancelled,
com.facebook.sdk:ErrorInnerErrorKey=Error Domain=com.apple.accounts
Code=7 "The Facebook server could not fulfill this access request: The proxied
app cannot request publish permissions without having being
installed previously."
错误说我需要请求发布许可,但我请求的是 "public_profile" 和 "email" 我缺少什么?
更新:看起来在设备上失败是因为用户在“设置”中登录了 FaceBook。我希望 Facebook SDK 做正确的事情,而不是它以某种方式执行上述操作。我还需要其他什么来完成这项工作吗?没有实现 SocialKit 和 FaceBook SDK?
经过大量实验后发现问题,在权限中请求 "public_profile" 以某种方式使 iOS 在请求中请求 read/write 权限并触发上述错误。 - 有各种线程要求 read/write 权限失败。
只要求 "email" 就足够了,因为它隐含地获得了 public 配置文件。