Ho implementato l'intero processo di login di Facebook su iOS in uno dei miei giochi iOS. Nell'app, è possibile accedere con un account e-mail o tramite Facebook. Occasionalmente presenta una vista che invita l'utente a sincronizzare il suo account con Facebook se ha effettuato l'accesso con una e-mail.FBSession.activeSession.isOpen restituisce NO anche se l'utente ha effettuato il login
Ecco il codice che sto usando per determinare wheither o no dovrei visualizzare questa vista per l'utente:
if (FBSession.activeSession.isOpen) {
// Present the view
} else {
// Go somewhere else
}
In un primo momento sembrava funzionare grande, ma si scopre che FBSession.activeSession.isOpen restituisce NO ad un certo punto anche se l'utente ha effettuato l'accesso con FB.
La mia prima ipotesi potrebbe essere che l'accessToken scada. Io non sono sicuro se è un buon indizio, perché sto facendo il seguito nella mia domanda: didFinishLaunchingWithOptions: il metodo (come Facebook raccomanda a):
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
// Yes, so just open the session (this won't display any UX).
[self openSessionWithCompletionBlock:^{}];
}
Così ora non ho idea di come riprodurre o per risolvere questo problema , qualche idea? È possibile che il token scada dopo l'avvio dell'app? Come se l'utente conservasse l'app in background per un lungo periodo di silenzio?
hie, sto anche affrontando lo stesso problema, ma nel mio caso, quando lancio nuovamente l'applicazione, ottengo la sessione zero. Ho anche provato creando una nuova sessione e aprendola ma non funziona. – ViruMax
ha risolto perfettamente il mio problema! Con il mio iOS FacebookSDK, 'FBState' cambiato in' FBSessionState' in 'checkSessionState: state'. Impossibile trovare il numero di versione dell'SDK, l'attuale attuale è 3.13. – jerik