Обработка неверного доступа с помощью 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 недопустимы.

Спасибо всем заранее!

Ответы на вопрос(1)

Ваш ответ на вопрос