Обработка неверного доступа с помощью FBSession openActiveSessionWithReadPermissions в Facebook iOS 3.1.1 SDK

Прежде всего, я прочитал обаэтот а такжеэтот вопросы для решения проблемы ниже и прежде чем задавать.

Моя проблема в том, что когда accessToken истекает (либо потому, что истекает срок годности, либо вручную, удаляя приложение из моего Facebook 's App Center) следующий код:

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)

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