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 なのはなぜですか? これらのアクセス許可はセッション間で保持されるべきではありませんか? 現在、ユーザーがログアウトしてから再度ログインするたびに、アプリケーションは、以前にアプリケーションに既に付与されているものと同じ権限を要求します。
もう 1 つの奇妙な点は、logInWithPermissions:blockが iOS に統合されたデフォルトの iOS6 ダイアログを使用し、reauthorizeUser:withPublishPermissions:audience:blockがユーザーを Facebook アプリに切り替えることです。
次の SDK バージョンを使用しています。
- Parse.com バージョン 1.2.7
- Facebook SDK バージョン 3.5.1
そしてもちろん、以前に述べたように、最初のアクセス許可が常にnil なのはなぜですか? これらのアクセス許可はセッション間で保持されるべきではありませんか?