我花了一天的时间在这上面搜索堆栈溢出,但找不到解决方案。我的代码在 iOS 5.1 和 3.1 上运行没有问题,在 iOS 6.0 上我遇到了问题。
我首先从 Facebook 应用设置中删除该应用以模拟第一次使用的用户。然后我安装应用程序并尝试登录。只要我不从 iOS 设置登录到 Facebook(即我的应用程序不使用增强型身份验证对话框),一切都会正常工作。如果我登录 iOS 设置,我会收到如下错误:
Facebook 登录错误 Error Domain=com.facebook.sdk Code=2 “操作无法完成。(com.facebook.sdk 错误 2。)” UserInfo=0x1dd7d570 {com.facebook.sdk:ErrorLoginFailedReason=com.facebook .sdk:ErrorLoginFailedReason, com.facebook.sdk:ErrorInnerErrorKey=Error Domain=com.apple.accounts Code=7 “Facebook 服务器无法满足此访问请求:应用程序必须在安装时请求基本读取权限。” UserInfo=0x1ddab400 {NSLocalizedDescription=Facebook 服务器无法完成此访问请求:应用程序必须在安装时请求基本读取权限。}}
我有以下代码
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_about_me", @"friends_about_me",
@"user_birthday", @"friends_birthday",
@"user_work_history", @"friends_work_history",
@"user_relationships", @"friends_relationships",
@"user_notes", @"friends_notes", nil];
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
[self sessionStateChanged:session
state:state
error:error];
}];
我发现唯一可行的解决方案是更换
openActiveSessionWithReadPermissions
回到已弃用的:
openActiveSessionWithPermissions