Behandle ungültiges accessToken mit FBSession openActiveSessionWithReadPermissions in Facebook iOS 3.1.1 SDK

Vor allem habe ich beides gelesendiese unddiese Fragen zur Lösung des Problems unten und vor dem Fragen.

Mein Problem ist, dass wenn das accessToken abgelaufen ist (entweder weil das Ablaufdatum verstrichen ist oder manuell durch Löschen der App aus dem App Center meines Facebook) der folgende Code:

if ([[FBSession activeSession] isOpen]) {
        //do something
    }
else {
        [FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
            if(FB_ISSESSIONOPENWITHSTATE(status)) {
                //do something
            }
          }
       }];
     }

wird im else-Block mit FBSession.activeSession geöffnet, aber wenn "etwas tun" ausgeführt wird, ist das accessToken ungültig, sodass die Anforderung Fehler: HTTP-Statuscode: 400 erhält. Wenn ich versuche, die gesamte Prozedur zweimal auszuführen, fragt die FBSession sofort nach Erlaubnis (entweder UIAlertView für iOS6, Facebook, Facebook App oder Facebook-Website in Safari) und der Rest läuft reibungslos.

Meine Sorge ist, warum ich zweimal alles tun muss, um gut zu funktionieren, und warum Facebook SDK nicht beim ersten Mal feststellen kann, dass die activeSession und das accessToken ungültig sind.

Vielen Dank im Voraus!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage