Cómo hacer que el usuario cierre la session de los ios de twitter

He realizado una aplicación básica que utiliza el tejido de Twitter que permite al usuario twittear dentro de mi aplicación y Proporcionar inicio de session con Twitter. Todas las cosas funcionan como lo quise.

Cómo funciona mi aplicación

Si el usuario no inicia session en twitter, mi aplicación le permite iniciar session y, si se inicia session, le permite directamente twittear.

Ahora viene la gran parte

Como vi en muchas aplicaciones, puedo quitar mi count firmada de la aplicación. Y no puedo get ningún método que me ayude a lograr esto. Quiero permitir que el usuario cierre la session de Twitter dentro de mi aplicación cuando quiera.

Busqué en Google, pero no encuentro nada.

Aquí está mi código:

- (IBAction)LogOut:(id)sender { [[Twitter shanetworkingInstance]logOut]; } - (IBAction)LogMeIn:(id)sender { [[Twitter shanetworkingInstance] logInWithCompletion:^ (TWTRSession *session, NSError *error) { if (session) { NSLog(@"signed in as %@", [session userName]); [LoginButton setTitle:@"LogOut" forState:normal]; } else { NSLog(@"error: %@", [error localizedDescription]); } }]; } 

ACTUALIZACIÓN: mayo de 2016: el marco ha cambiado, por lo que esta respuesta ya no es relevante.

Consulte esta respuesta: https://stackoverflow.com/a/35765833/940709 y esta respuesta: https://stackoverflow.com/a/30916904/940709 en su lugar.

[[[Twitter shanetworkingInstance] sessionStore] logOutUserID:USERID];

este fue un problema con NSCookie desde el marco de la Fundación. Y slove estos problemas con la ayuda del código siguiente

 NSURL *url = [NSURL URLWithString:@"https://api.twitter.com"]; NSArray *cookies = [[NSHTTPCookieStorage shanetworkingHTTPCookieStorage] cookiesForURL:url]; for (NSHTTPCookie *cookie in cookies) { [[NSHTTPCookieStorage shanetworkingHTTPCookieStorage] deleteCookie:cookie]; } 

Necesita usar el siguiente código

 [[[Twitter shanetworkingInstance] sessionStore] logOutUserID:USERID]; 

Proporcione el ID de usuario del usuario al que desea cerrar session.

Cierre de session del código de documentos de Twitter :

C objective

 TWTRSessionStore *store = [[Twitter shanetworkingInstance] sessionStore]; NSString *userID = store.session.userID; [store logOutUserID:userID]; 

Rápido

 let store = Twitter.shanetworkingInstance().sessionStore if let userID = store.session?.userID { store.logOutUserID(userID) } 

Esta es la mejor respuesta simple para Swift 3 :

 let store = Twitter.shanetworkingInstance().sessionStore if let userID = store.session()?.userID { store.logOutUserID(userID) } 

o puede usar la respuesta de Naeem pero agregar () después de store.session

Para Swift testing esto,

 /** * Deletes the local Twitter user session from this app. This will not remove the system Twitter account nor make a network request to invalidate the session. * * @param userID ID of the user to log out */ Twitter.shanetworkingInstance().sessionStore.logOutUserID(userId) 

Primero, asegúrese de que algún usuario haya iniciado session, luego realice el cierre de session.

 NSString *signedInUserID = [TWTRAPIClient clientWithCurrentUser].userID; if (signedInUserID) { [[Twitter shanetworkingInstance].sessionStore logoutUserID:signedInUserID]; } 

Mientras que el método de inicio de session se menciona como webBasedForceLogin, para que no cree input en Safari Cache.

 private func twitterLogin() { Twitter.shanetworkingInstance().logIn(withMethods: .webBasedForceLogin, completion: { (session, error) in if let error = error { print(error.localizedDescription) } guard let session = session else { return } print("success! Welcome \(session.userName).") self.twitterButton.setTitle("TWITTER LOGOUT", for: .normal) }) } private func twitterLogout() { let sessionStore = Twitter.shanetworkingInstance().sessionStore if let userID = sessionStore.session()?.userID { sessionStore.logOutUserID(userID) } twitterButton.setTitle("TWITTER LOGIN", for: .normal) } 

Use a continuación:

 [TWTRSessionStore logout] 

Obsoleto:

 [Twitter logOut] 

es obsoleto.

Se anima a los usuarios a llamar: [TWTRSessionStore logout] lugar de llamar a este método directamente en la instancia de Twitter .