4

我尝试使用 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?这些权限不应该在会话之间保留吗?

4

1 回答 1

0

我从 Parse 得到的唯一建议是“使用图形 API”:

https://parse.com/questions/pffacebookutils-loginwithpermissionsblock-loses-permissions

不过,该问题已在 Parse 的最新版本中得到解决。

于 2013-12-17T06:44:47.067 回答