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 でテストしています