Facebook セッションを開くと、すべてがうまくいき、完了ブロックが呼び出されます。
[FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
NSLog(@"openSession handler");
}];
ただし、後で追加のアクセス許可を要求すると、新しい完了ブロックだけでなく、両方の完了ブロックが呼び出されます。
[FBSession.activeSession reauthorizeWithReadPermissions:
[NSArray arrayWithObject:@"user_photos"]
completionHandler:^(FBSession *session, NSError *error) {
NSLog(@"reauthorize handler");
}];
これはバグですか、それともこのようになるはずですか? どうすればこの動作を回避できますか? 呼び出し後に完了ブロックを削除することは可能ですか?
Scrumptious サンプルを調べたところ、動作はまったく同じです。アプリが公開許可を要求すると、公開完了ブロックが呼び出され、ログイン ブロックが再度呼び出されます。
iOS5 と Facebook-ios-sdk 3.1.1 でテストしています