Manipular acesso inválidoToken com o FBSession openActiveSessionWithReadPermissions no Facebook iOS 3.1.1 SDK
Antes de qualquer coisa, eu li ambosisto eisto perguntas para resolver o problema abaixo e antes de perguntar.
Meu problema é que quando o accessToken é expirado (seja porque a data de expiração passa, ou manualmente, excluindo o aplicativo da minha App Center do Facebook) o seguinte código:
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
}
}
}];
}
entra no bloco else com FBSession.activeSession aberto, mas quando o 'fazer algo' é executado, o accessToken é inválido, então a requisição recebe o erro: Código de status HTTP: 400. Quando tento fazer o procedimento inteiro duas vezes imediatamente, o FBSession solicita permissão (UIAlertView para iOS6 integrado facebook, Facebook App ou site do Facebook no Safari) e o resto funciona sem problemas.
Minha preocupação é por que tenho que fazer tudo duas vezes para funcionar bem e por que o Facebook SDK não consegue detectar na primeira vez que o activeSession e o accessToken são inválidos.
Obrigado a todos antecipadamente!