Ho implementato un pulsante di accesso a Facebook che funziona perfettamente. Tuttavia, dopo che l'utente ha effettuato correttamente l'accesso a Facebook e torna all'app, [FBSDKAccessToken currentAccessToken]
restituisce NO
. Ho aggiunto un osservatore per vedere se il codice che voglio è in esecuzione dopo il ritorno indietro al app:FBSDKAccessToken currentAccessToken non viene aggiornato dopo il login
-(void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn)name :UIApplicationWillEnterForegroundNotification object:nil];
}
-(void)checkLogIn
{
NSLog(@"IN CHECK LOG IN");
if ([FBSDKAccessToken currentAccessToken]) {
NSLog(@"Access Token Activated");
}
}
E dopo Login Quando tornerò a l'applicazione del metodo checkLogIn
viene chiamato, ma restituisce comunque [FBSDKAccessToken currentAccessToken]
NO
. Tuttavia, cambia in SÌ dopo aver premuto il tasto home su iPhone e tornare all'app.
Come può essere aggiornato immediatamente, così posso mostrare all'utente un altro controller di visualizzazione?
UPDATE: Ho scoperto il modo di eseguire il codice corretto dopo essere tornato all'app. La chiave è usare FBSDKAccessTokenDidChangeNotification
è Centro di notifica. Quindi il risultato finale sarà così:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn) name: FBSDKAccessTokenDidChangeNotification object:nil];
In questo modo il token verrà aggiornato e funzionerà.
@smartTree È inoltre possibile controllare questo post http://stackoverflow.com/questions/30042905/what-is-the-expected-behaviour-of-facebook-login/30046216#30046216 –
ho tutto questo codice implementato nel delegato dell'app. Ancora lo stesso problema. – SmartTree
Soluzione trovata, aggiornata la risposta. – SmartTree