Cierre la session de Facebook en Facebook-Ios-Sdk

¿Cómo cierro una session activa del Facebook-iOS-Sdk cada vez que inicio mi aplicación después de matar la aplicación? Me da los detalles de la session de inicio de session anterior. Cuando hago clic en el button de Facebook. He usado todo [appDelegate.session closeAndClearTokenInformation]; [FBSession.activeSession close]; [FBSession.activeSession closeAndClearTokenInformation] ..pero la session activa aún no ha estado cerca … ¿cómo cierro los datos de la session anterior onclick?

Utilizo el código siguiente para borrar, pero cada vez que hago clic en el button de Facebook para comenzar una nueva session … me devuelve las cnetworkingenciales anteriores.

 - (IBAction)buttonClickHandler:(id)sender { appDelegate = [[UIApplication shanetworkingApplication]delegate]; // this button's job is to flip-flop the session from open to closed if (appDelegate.session.isOpen) { [appDelegate.session closeAndClearTokenInformation]; [FBSession.activeSession close]; [FBSession.activeSession closeAndClearTokenInformation]; FBSession.activeSession=nil; } else { if (appDelegate.session.state != FBSessionStateCreated) { // Create a new, logged out session. appDelegate.session = [[FBSession alloc] init]; } // if the session isn't open, let's open it now and present the login UX to the user [FBSession.activeSession closeAndClearTokenInformation]; FBSession.activeSession=nil; [FBSession.activeSession openWithBehavior:FBSessionLoginBehaviorForcingWebView completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { // and here we make sure to update our UX according to the new session state NSLog(@" state=%d",state); [FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphUser> user, NSError *error) { userInfo = @""; // Example: typed access (name) // - no special permissions requinetworking userInfo = user.username; NSLog(@"string %@", userInfo); [self checkfacebook]; }]; }]; } } 

y en ViewDidLoad

 - (void)viewDidLoad { [super viewDidLoad]; AppDelegate *appDelegate = [[UIApplication shanetworkingApplication]delegate]; if (!appDelegate.session.isOpen) { // create a fresh session object appDelegate.session = [[FBSession alloc] init]; if (appDelegate.session.state == FBSessionStateCreatedTokenLoaded) { // even though we had a cached token, we need to login to make the session usable [FBSession.activeSession close]; FBSession.activeSession=nil; } } NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage shanetworkingHTTPCookieStorage]; NSArray* facebookCookies = [cookies cookiesForURL:[NSURL URLWithString:@"http://login.facebook.com"]]; for (NSHTTPCookie* cookie in facebookCookies) { [cookies deleteCookie:cookie]; } } 

Hola, Christien puede estar a continuación dos enlaces de su ayuda. Por favor refuerza este enlace de developers.facebook

http://developers.facebook.com/docs/reference/ios/3.0/class/FBSession/

http://developers.facebook.com/docs/reference/ios/3.0/class/FBSession/#close

 [FBSession.activeSession closeAndClearTokenInformation]; [FBSession.activeSession close]; [FBSession setActiveSession:nil]; 

También puede verificar esta dos preguntas relacionadas con su problema:

Facebook gráfico api log out no funciona

Facebook iOS SDK 3.1.1 método "closeAndClearTokenInformation" no funciona

espero que te ayude

Despues de llamar

  [FBSession.activeSession closeAndClearTokenInformation]; 

use los siguientes para borrar las cookies. Funcionó para mí!

  NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage shanetworkingHTTPCookieStorage]; for (NSHTTPCookie* cookie in [[NSHTTPCookieStorage shanetworkingHTTPCookieStorage] cookies]) { [cookies deleteCookie:cookie]; } 

Respuesta de Goit de Nitin, versión Swift:

  FBSession.activeSession().closeAndClearTokenInformation() FBSession.activeSession().close() FBSession.setActiveSession(FBSession()) 

puedes usar

  FBSession.setActiveSession(nil) 

Pero la function solicita un object desenvuelto, por lo que "nada" parece no ser un buen parámetro para ser aprobado