2013-03-25 21 views
39

Mam zintegrowany login Facebooka w mojej aplikacji i dlatego użytkownik może zalogować się zarówno z moim kontem aplikacji, jak i Facebookiem i wykonywać odpowiednie akcje. Do integracji z Facebookiem dodałem pakiet SDK Facebooka. Teraz, kiedy wylogujesz się kliknięciu przycisku w mojej aplikacji musi usunąć wszystkie poświadczenia Facebooku Account.I poszły do:Wylogowanie się z Facebooka w aplikacji za pomocą Facebooka ios SDK

-(IBAction)btnlogOutClicked:(id)sender 
{ 
    [appDelegate fbDidlogout]; 
} 
-(void)fbDidlogout 
{ 
    FBSession* session = [FBSession activeSession]; 
    [session closeAndClearTokenInformation]; 
    [session close]; 
    [FBSession setActiveSession:nil]; 


} 

Ale kiedy ponownie kliknij przycisk I m przekierowany bezpośrednio na moje konto bez przechodzenia do strony logowania Facebooka.

Jak mogę się wylogować z Facebooka?

+0

Który zestaw SDK? Jest wiele. (PHP, Js, C#) ... –

+0

Facebook ios SDK jest tym, którego używam ... – Aaradhya

+0

Ten kod działa dobrze dla mnie :) –

Odpowiedz

0

W swoim zapisie postButtonClicked następujący jeśli else:

-(void)postButtonClicked 
{ 

    _session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain]; 
    [_session resume]; 

    posting = YES; 
    showSlideShow = 1; 

    if (_facebookName != nil) 
    { 
     [self logoutButtonClicked]; 
    } 
    if (![_session isConnected]) 
    { 
     self.loginDialog = nil; 
     _loginDialog = [[FBLoginDialog alloc] init]; 
     [_loginDialog show]; 
    } 
    else { 
     self.loginDialog = nil; 
     _loginDialog = [[FBLoginDialog alloc] init]; 
     [_loginDialog show]; 
    } 
} 
+0

Używam Facebook ios SDK. Nie użyłem żadnego FBLoginDialog.Can proszę powiedz mi, jak mogę się wylogować za pomocą pakietu SDK Facebook ios? – Aaradhya

20

Dla wylogowania należy spróbować tej

można dodać przycisk Wyloguj na Navigation Controller (w prawym górnym rogu) w viewDidLoad metody

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
            initWithTitle:@"Logout" 
            style:UIBarButtonItemStyleBordered 
            target:self 
            action:@selector(logoutButtonWasPressed:)]; 

i Sposób działania dla wyżej Dodano przycisk jest

-(void)logoutButtonWasPressed:(id)sender { 
    [FBSession.activeSession closeAndClearTokenInformation]; 
} 

nadzieję, że to pomoże!

Reference

Edit:

Kiedy zapytałem, dlaczego jej nie prosi o nazwę użytkownika i hasło, więc powodem jest:

Kiedy zintegrować Facebook SDK w naszej aplikacji i spróbuj się zalogować automatycznie sprawdza dwa miejsca (aby upewnić się, że już zalogowaliśmy się na Facebooku lub nie)

  1. Przede wszystkim Sprawdza, czy już zalogowaliśmy się do aplikacji Native na Facebooku, która jest zainstalowana na tym urządzeniu.

  2. to Sprawdza, czy zapisaliśmy nazwę użytkownika FaceBook i hasło w ustawieniach urządzenia.

przypadku obu tych miejscach nie mamy zalogowanymi wtedy zapyta nazwę użytkownika i hasło w aplikacji

można sprawdzić konfigurację konta Facebook w ustawieniach urządzenia, jak pokazano na zrzucie ekranu poniżej,

Naciśnij przycisk Start -> Ustawienia -> Facebook

enter image description here

+0

Próbowałem za pomocą kodu ur, ale otrzymałem login z moimi referencjami, jeśli kliknę przycisk Login bez pytania o identyfikator logowania i psswrd ... Co jeszcze powinienem zrobić? – Aaradhya

+0

zobacz w iOS 6 mamy natywną platformę dla Facebooka, więc po zalogowaniu się z aplikacji sprawdza, czy zapisałeś już dane logowania w ustawieniach urządzenia, czy nie, więc upewnij się, że tak jak na Twitterze wprowadziłeś informacje o koncie Facebook w ustawieniach, w przeciwnym razie wyświetli monit o przejście do trybu UN i przekazuje przy każdej próbie zalogowania się z aplikacji. – swiftBoy

+0

Niestety, nie udało mi się ... Teraz mogę wylogować się z Facebooka, kiedy otwieram facebookowy adres URL w przeglądarce, a następnie się tam wylogowuję. Następnie pojawia się monit o podanie danych logowania na Facebooku (Id i psswrd) po kliknięciu przycisku Zaloguj się btn w mojej aplikacji – Aaradhya

9

FBSDK robi wylogowania tak:

[FBSession.activeSession closeAndClearTokenInformation]; 
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
    [login logOut]; 
79

Za pomocą nowego zestawu do logowania w serwisie Facebook SDK napisz poniżej linii i to jest ..

[[FBSDKLoginManager new] logOut]; 

przypadku korzystania z szybkich, upewnij się, że niezbędne importu

import FBSDKLoginKit 

func logout() { 
    FBSDKLoginManager().logOut() 
} 
+1

Czy to działa? "FBSDKLoginManager" musi być takie samo jak w logowaniu? lub może być nowym obiektem.? – Mani

+0

nie .. to nie musi być takie samo – iHulk

+0

Praca tak gładka! Thx – JDDelgado

0

przypadku korzystania Swift 3 lub 4:

var loginManager = LoginManager() 

Wklej ten kod, gdy pewne działania jest potrzeba do zrobienia w celu wylogowania

loginManager.logOut() 
+0

@ SaschaM78, ​​który za pomoc mate –

Powiązane problemy