Google Drive oAuth2

Nihon

¡Hola!

Quiero implementar algunos servicios de Google desde una aplicación que estoy desarrollando y para ello tengo que comenzar con autorizar mi aplicación para utilizar los servicios que necesito.

Bien, he creado un nuevo proyecto en la consola de desarrolladores donde he añadido los servicios que me interesan (de momento Drive API y SDK), he añadido mi aplicación con sus datos (SHA1 y nombre del paquete) y, por último, me he puesto a programar la parte cliente de mi aplicación.

Llevo varios días con esto y no he conseguido nada; los tutoriales que he visto o no están bien explicados (con partes de código sueltas) o bien están incompletos (se saltan la parte autorización para empezar a navegar por carpertas de drive).

El caso es que no consigo alto tan sencillo como una clase base y simple que funcione y donde tenga que cambiar los parámetros necesarios para que me autorice la conexión con los servicios de google sin entrar en nada más complejo.

Agradecería cualquier código hecho para cazurros que funcione.

zoeshadow

En serio con esta documentación te es insuficiente? XD

1 respuesta
Nihon

#2 Si, en serio. Me acaba dando un error "Relacionado con los servicios de google play" sin más información y no se si es por no crear bien la llamada de autorización o si tengo usar algún dato de los que vienen en la consola de desarrolladores que no aparece en ese ejemplo.

Ya he comentado que soy un poco cazurro, lo admito.

1 respuesta
zoeshadow

#3 Es curioso, para el estándar de Google no está mal del todo.. xD

Yo nunca he tocado esto, pero estoy mirando la documentación esa y pone que en caso de que no haya autorización lo que hace es lanzarte una Excepción:

try {
    // Try to perform a Drive API request, for instance:
    // File file = service.files().insert(body, mediaContent).execute();
} catch (UserRecoverableAuthIOException e) {
    startActivityForResult(e.getIntent(), COMPLETE_AUTHORIZATION_REQUEST_CODE);
}

con el startActivityForResult() te debería iniciar la actividad que tengan ellos puesta en el intent que te devuelva la excepción y finalmente volver a tu aplicación cuando esté correcta/fallida. ( vamos, el flujo tipico de autenticación por oAuth que tienen todas las apps )

PD: He dado por hecho que es una app de Android pero igual me estoy colando xD

1 respuesta
Nihon

#4 Sí es una aplicación Android, perdón por la ambigüedad.

Ese código fue el primero que utilicé por razones obvias pero aunque me saltaba el error y no hacía nada más al volver a probar volvía a salirme el error y a no hacer nada por lo que entiendo que no ha terminado teniendo autorización (de lo contrarío no daría error al autenticar una segunda vez).

1 respuesta
zoeshadow

#5 dónde estás ejecutando la aplicación, tiene Google Play Services instalado?

1 respuesta
Nihon

#6 Sí, toda la parte hasta cliente está hecha; añadidas y referenciadads librerías de google play services. Dada de alta la aplicación en la consola de desarrolladores con su SHA1 ID y los servicios correspondientes. Es la parte de cliente la que no me aclara.

Por ejemplo ese código de google entiendo que esté bien para el que sepa lo que hay, yo necesito un main completo y no trozos sueltos (como ese 'accountname' que no se sabe que tipo es o de donde viene) ya que me lio.