2013-03-25 19 views
39

Ho integrato l'accesso di Facebook nella mia app e quindi l'utente può accedere sia con l'account della mia app e anche Facebook e fare azioni corrispondenti. Per l'integrazione di Facebook ho aggiunto Facebook SDK.Ora quando si disconnette fa clic sul pulsante nella mia app deve cancellare tutte le credenziali di Facebook Account.I sono andati a:Disconnessione di Facebook nell'app utilizzando Facebook ios SDK

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


} 

Ma quando ho di nuovo Fare clic sul pulsante i m reindirizzato direttamente sul mio conto senza andare alla pagina di login di Facebook.

Come posso disconnettermi da Facebook?

+0

Quale SDK? Ci sono molti. (PHP, Js, C#) ... –

+0

Facebook ios SDK è quello che sto usando ... – Aaradhya

+0

Questo codice funziona bene per me :) –

risposta

0

Nella tua postButtonClicked scrittura segue se il resto:

-(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

Sto usando Facebook ios SDK.Non ho usato alcun FBLoginDialog. Per favore dimmi come posso uscire usando Facebook ios SDK? – Aaradhya

20

Per il logout si dovrebbe provare questo metodo

è possibile aggiungere il pulsante Esci sul Navigation Controller (Top Right Corner) in viewDidLoad

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

e la metodo di azione per il pulsante sopra aggiunto è

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

Spero che questo vi aiuterà!

Reference

Edit:

Come hai chiesto perché la sua non chiede nome utente e password, quindi il motivo è:

Quando abbiamo integrare Facebook SDK nella nostra app e cerchiamo di login , che controlla automaticamente due posti (per assicurarsi che abbiamo già effettuato l'accesso a Facebook o no)

  1. Prima di tutto Controlla se abbiamo già effettuato l'accesso all'app nativa di Facebook installata su questo dispositivo.

  2. quindi Controlla se abbiamo salvato il Nome utente e la password di FaceBook in Impostazioni dispositivo.

Se entrambi i posti che non ha effettuato il login in poi chiederà username e password nel applicazione

è possibile controllare la configurazione dell'account Facebook nelle impostazioni del dispositivo, come mostrato nella schermata qui sotto tiro,

Premere Home Button -> Impostazioni -> Facebook

enter image description here

+0

Ho provato con il tuo codice ma accedo con le mie credenziali se clicco su Login buton senza chiedere id di accesso e psswrd ... Cos'altro dovrei fare? – Aaradhya

+0

vedere in iOS 6 abbiamo il framework nativo per Facebook, quindi quando effettui il login da app controlla se hai già salvato le informazioni di accesso in Impostazioni dispositivo o no, quindi assicurati che come Twitter hai inserito le informazioni sull'account Facebook nelle impostazioni, altrimenti ti verrà richiesto UN e Pass ogni volta che tenti di accedere dalla tua app. – swiftBoy

+0

Mi spiace di non averti ... Ora posso disconnetterti da Facebook quando apro l'url di Facebook nel browser e poi esci da lì., Quindi chiedo le credenziali di Facebook (Id e psswrd) quando faccio clic su Accedi btn nella mia app – Aaradhya

9

FBSDK sta facendo il logout in questo modo:

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

Utilizzando il nuovo kit di login di Facebook SDK basta scrivere sotto la riga e questo è ..

[[FBSDKLoginManager new] logOut]; 

Se si utilizza veloce, assicurarsi di avere le importazioni necessarie

import FBSDKLoginKit 

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

Funziona? 'FBSDKLoginManager' deve essere uguale a quello utilizzato per l'accesso? o potrebbe essere un nuovo oggetto.? – Mani

+0

no .. non ha bisogno di essere lo stesso – iHulk

+0

Funzionante così liscio! Thx – JDDelgado

0

Se si utilizza veloce 3 o 4:

var loginManager = LoginManager() 

Incolla questo codice quando qualche azione è necessario da fare per la disconnessione

loginManager.logOut() 
+0

@ SaschaM78 che per l'aiuto amico –