2015-04-02 17 views
12

Ho già usato la seguente per cancellare e ripristinare l'accesso di Facebook token direset Facebook Token Riferimento - Facebook SDK 4.0

[FBSession.activeSession closeAndClearTokenInformation]; 

Dal momento che l'aggiornamento alla 4.0 questo non funziona più. FBSession.activeSession è stato modificato in [FBSDKAccessToken currentAccessToken].

Tuttavia non riesco a trovare l'ultima versione di closeAndClearTokenInformation che funziona con la versione più recente. Eventuali suggerimenti?

risposta

36
FBSDKLoginManager *logMeOut = [[FBSDKLoginManager alloc] init]; 
[logMeOut logOut]; 

o

[FBSDKAccessToken setCurrentAccessToken:nil]; 
[FBSDKProfile setCurrentProfile:nil]; 

logout

Poi, quando si effettua il login di nuovo, assicurarsi di impostare:

login.loginBehavior = FBSDKLoginBehaviorWeb; 

Come così:

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
login.loginBehavior = FBSDKLoginBehaviorWeb; 
[login logInWithReadPermissions:@[@"user_friends"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
     etc... 
}]; 

Ho trovato alcune informazioni nei documenti che dicono che FBSDKLoginBehaviorWeb può essere utilizzato per le app "kiosk"; che immagino siano app progettate per avere più di una persona che le registra regolarmente.

Una cosa da notare, questo metodo di accesso crea un UIWebView modale che è impostato per la modalità verticale. Non sono sicuro che sia possibile cambiarlo ancora.

+1

Perché si includere 'login.loginBehavior = FBSDKLoginBehaviorWeb;'? – memyselfandmyiphone

+1

come nota, la prima opzione funziona senza la necessità di 'login.loginBehavior = FBSDKLoginBehaviorWeb;'. Penso che tu abbia impostato l'SDK errato se hai bisogno di usare questa linea aggiuntiva. – memyselfandmyiphone

+0

impressionante ... + 1000000 –

3

Swift 2+ soluzione semplice

FBSDKLoginManager().logOut() 
+0

questo ripristina/rimuove i token di accesso attivi giusto? –

+0

'LoginManager(). LogOut()' per l'ultima versione di Facebook Lib – Allreadyhome