Обработка неверного доступа с помощью FBSession openActiveSessionWithReadPermissions в Facebook iOS 3.1.1 SDK
Прежде всего, я прочитал обаэтот а такжеэтот вопросы для решения проблемы ниже и прежде чем задавать.
Моя проблема заключается в том, что когда срок действия accessToken истекает (либо потому, что истекает срок действия, либо вручную, удаляя приложение из моего центра приложений Facebook), следующий код:
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
}
}
}];
}
попадает в блок else с открытым FBSession.activeSession, но когда «что-то делает»; выполняется accessToken недействителен, поэтому запрос получает ошибку: код состояния HTTP: 400. Когда я пытаюсь выполнить всю процедуру дважды, сразу же FBSession запрашивает разрешение (либо UIAlertView для iOS6, встроенный Facebook, приложение Facebook или веб-сайт Facebook в Safari), а все остальное проходит гладко.
Меня беспокоит то, почему я должен сделать все дважды, чтобы работать хорошо, и почему Facebook SDK не может обнаружить в первый раз, что activeSession и accessToken недопустимы.
Спасибо всем заранее!