我有一个简单的应用程序,我在iOS上通过Facebook SDK整合Facebook登录 . 当用户点击“使用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?
1 回答
经过大量实验后发现问题,要求权限中的“public_profile”以某种方式让iOS在请求中请求读/写权限并触发上述错误 . - 要求读/写权限都失败,有各种各样的线程 .
要求只是“电子邮件”应该足以隐含地获取公共资料 .