2015-05-13 20 views
10

Zaimplementowałem przycisk logowania na Facebooku, który działa doskonale. Jednak po pomyślnym zalogowaniu użytkownika na Facebooku i powrocie do aplikacji, [FBSDKAccessToken currentAccessToken] zwraca NO. Dodałem obserwatora, czy kod Chcę działa po powrocie z powrotem do aplikacji:FBSDKAccessToken currentAccessToken nie jest aktualizowany po zalogowaniu

-(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"); 

     } 
} 

I po zalogowaniu kiedy wrócę do aplikacji metodą checkLogIn jest nazywany ale [FBSDKAccessToken currentAccessToken] wciąż powraca NO. Zmienia się jednak na TAK po naciśnięciu przycisku home na telefonie iPhone i powrocie do aplikacji.

Jak można go natychmiast zaktualizować, aby móc wyświetlić użytkownikowi inny kontroler widoku?

AKTUALIZACJA: Po powrocie do aplikacji dowiedziałem się, jak wykonać właściwy kod. Kluczem jest użycie FBSDKAccessTokenDidChangeNotification w Centrum powiadomień. Ostateczny wynik będzie następujący:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn) name: FBSDKAccessTokenDidChangeNotification object:nil]; 

Ten sposób token zostanie zaktualizowany i będzie działał.

Odpowiedz

17

Proszę sprawdzić klasę appDelegate i zastosować wszystkie wymagane metody FB SDK. Załączam zrzut ekranu dla tego samego.

enter image description here

+1

@smartTree Można również sprawdzić ten post http://stackoverflow.com/questions/30042905/what-is-the-expected-behaviour-of-facebook-login/30046216#30046216 –

+1

mam cały ten kod zaimplementowany w delegacie aplikacji. Wciąż ten sam problem. – SmartTree

+0

Znaleziono rozwiązanie, zaktualizowano odpowiedź. – SmartTree

Powiązane problemy