ios - twitterkit - twtrtwitter
¿Cómo almaceno y acceso a una sesión de inicio de sesión de Twitter Fabric(iOS/Swift)? (2)
Puedo iniciar sesión en Twitter a través de mi aplicación usando este código de Twitter Fabric:
let logInButton = TWTRLogInButton(logInCompletion: {
(session: TWTRSession!, error: NSError!) in
// play with Twitter session
if (session != nil) {
println("signed in as /(session.userName)");
self.TWUsernameLabel.text = "Logged in as @" + session.userName
} else {
println("error: /(error.localizedDescription)");
}
})
Cuando hago clic en el botón de inicio de sesión, me pide que apruebe el inicio de sesión y luego inicie sesión, o bien, ya sé que ya aprobó el inicio de sesión y me registra. Esto funciona como un amuleto y tardó los diez minutos en configurarse. Asombroso.
Ya tengo un inicio de sesión basado en correo electrónico para acceder a la aplicación. Me gustaría almacenar la cuenta de un usuario registrado en Twitter en esa misma base de datos, así que cuando un usuario inicia sesión con su correo electrónico, ya sé su Twitter (si han iniciado sesión antes) y no necesitan iniciar sesión nuevamente. . La razón por la que hago el inicio de sesión de correo electrónico es porque Twitter es una característica importante en mi aplicación, pero no es un requisito total.
El problema es que no tengo idea de cómo acceder a la session
fuera de cuando se hace clic en el botón y se dispara logInCompletion
, y no sé qué variables almacenar al inicio de sesión / verificación después de usar la aplicación.
He leído la documentación de Twitter Fabric en numerosas ocasiones, pero no está escrito de forma rápida, por lo que es bastante confuso. ¿Algunas ideas? Gracias
Si actualmente hay una sesión activa, debería poder acceder a ella tal como los documentos dicen a
Twitter.sharedInstance().session()
Si el usuario no está conectado, ese método devolverá cero. Si desea saber si alguien ya está autenticado, simplemente verifique si ese método arroja un valor o no.
El kit de Twitter presenta automáticamente una pantalla de inicio de sesión si el usuario no ha iniciado sesión (no existe sesión ...). Pero, antes de llamar a cualquier API futura, simplemente verifique si la sesión es válida o no. En algunas API, es posible que deba pasar esta sesión también.
if ([[Twitter sharedInstance] session]) {
TWTRShareEmailViewController *shareEmailViewController =
[[TWTRShareEmailViewController alloc]
initWithCompletion:^(NSString *email, NSError *error) {
NSLog(@"Email %@ | Error: %@", email, error);
}];
[self presentViewController:shareEmailViewController
animated:YES
completion:nil];
} else {
// Handle user not signed in (e.g. attempt to log in or show an alert)
}
}
Incluso no tiene que preocuparse por el almacenamiento y la administración del access token
access token secret
y el access token secret
.