example - Android: Google SSO-OAuth o AccountManager? ¿O ambos?
login with google android (2)
Después de leer todo tipo de publicaciones de Stackoverflow y varios documentos, incluidos algunos en http://code.google.com/p/google-api-java-client/ , me siento completamente confundido. Entonces, ¿alguien me puede explicar la mejor manera de lograr lo siguiente?
- Deje que el usuario apruebe mi aplicación. Realmente no me importa si esto se hace accediendo a su cuenta de Google registrada en cuentas / configuraciones y aprobando la aplicación (forma preferida) o llamando a la página de autenticación de Google OAuth
- Obtenga el token de autenticación que se puede usar para comunicarse con Google Reader
Otro punto de confusión para mí: pude aprobar mi aplicación usando AccountManager y obtener el token de autenticación de él, pero no funcionará con Google Reader. Entonces, ¿cómo equilibrar la información de cuenta de AccountManager y OAuth? ¿Todavía tengo que hacer algo con OAuth después de que el usuario lo apruebe en la configuración de AccountManager?
El ejemplo del código sería bueno, pero busco alguna explicación clara sobre cómo todas estas piezas están relacionadas entre sí.
Aquí hay una clase de entrenamiento de Android en AccountManager que podría ayudar:
http://developer.android.com/training/id-auth/authenticate.html
Además, usar AccountManager con Google Reader es actualmente la única forma preferida de hacerlo. Dirigir a los usuarios a una página de inicio de sesión con WebView no es muy seguro y, según lo que sé, las API de Google no admiten el uso de un navegador (tampoco estoy seguro de si Reader usa OAuth2 o no).
El administrador de cuenta le permite obtener tokens de autenticación para diferentes servicios. Hay diferentes implementaciones concretas bajo el capó: ClientLogin, OAuth, etc. Para que funcione con, digamos, Google Reader, debe pasar el tipo de token apropiado. Para ClientLogin, esos son cadenas cortas como "ah" (App Engine) y "reader" (Google Reader). Para OAuth, son ámbitos, según lo define cada servicio. Entonces, ¿qué estás pasando como el parámetro authTokenType
?
Obtener el token es asíncrono, ya que puede implicar el acceso a la red. Si hay un token en caché, se devolverá de inmediato, si es válido. El flujo no es tan complicado, mira el enlace de arriba para ver la bonita imagen. Una vez que obtienes el token, lo pones en el encabezado apropiado y usas el API según la especificación.