我尝试使用 Facebook 用户 Parse 登录。每次使用 logInWithPermissions 时,权限都是nil。以下代码始终产生相同的输出:
[PFFacebookUtils logInWithPermissions:[NSArray arrayWithObject:@"email"]
block:^(PFUser *user, NSError *error) {
NSLog(@"Initial login permissions: %@", [[PFFacebookUtils session] permissions]);
[PFFacebookUtils reauthorizeUser:[PFUser currentUser]
withPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
audience:FBSessionDefaultAudienceEveryone
block:^(BOOL succeeded, NSError *error) {
NSLog(@"Post request login permissions: %@", [[PFFacebookUtils session] permissions]);
[PFUser logOut];
}];
}];
输出是:
app2[6966:907] Initial login permissions: (null)
app2[6966:907] Post request login permissions: (
"user_location",
installed,
"user_birthday",
email,
"publish_actions"
)
为什么初始权限总是nil?这些权限不应该在会话之间保留吗?现在,每次用户注销然后再次登录时,应用程序都会请求之前已经授予应用程序的相同权限。
另一个奇怪的地方是logInWithPermissions:block使用了集成到 iOS 中的默认 iOS6 对话框,而reauthorizeUser:withPublishPermissions:audience:block将用户切换到 Facebook 应用程序。
我正在使用以下 SDK 版本:
- Parse.com 版本 1.2.7
- Facebook SDK 版本 3.5.1
当然,还有一个问题,如前所述:为什么初始权限总是nil?这些权限不应该在会话之间保留吗?