Obsługuj niepoprawny accessToken za pomocą FBSession openActiveSessionWithReadPermissions na Facebooku iOS 3.1.1 SDK

Przed wszystkim przeczytałem obato ito pytania do rozwiązania problemu poniżej i przed pytaniem.

Mój problem polega na tym, że gdy wygasa termin dostępu (albo z powodu upływu daty ważności, albo ręcznie przez usunięcie aplikacji z mojego Centrum aplikacji na Facebooku), następujący kod:

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
            }
          }
       }];
     }

dostaje się do bloku else z otwartą FBSession.activeSession, ale gdy wykonywane jest polecenie „zrób coś”, accessToken jest nieprawidłowy, więc żądanie pobiera błąd: kod statusu HTTP: 400. Kiedy próbuję wykonać całą procedurę dwa razy, FBSession prosi o pozwolenie (albo UIAlertView dla zintegrowanego Facebooka z systemem iOS6, aplikacji na Facebooku lub strony Facebooka w Safari), a reszta działa płynnie.

Obawiam się, dlaczego muszę zrobić wszystko dwa razy, aby dobrze działać i dlaczego Facebook SDK nie może wykryć po raz pierwszy, że activeSession i accessToken są nieprawidłowe.

Z góry dziękuję!

questionAnswers(1)

yourAnswerToTheQuestion