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ę!