domingo, 11 de febrero de 2018

Google API - Gmail

Hace mucho tiempo que hice esto y quería haber escrito un post al respecto, y ahora que he querido volver a lanzar el scritp del que voy a hablar, he tenido problemas. Por lo que voy a aprovechar para hablar sobre esto.

La historia era la siguiente: quería bajarme los e-mails de mi cuenta de gmail con un filtro determinado: bajarme los e-mails de la carpeta de spam para estudiar sus cabeceras y ver de dónde proceden y cómo reportarlo.

Lo primero que toca es decidir en qué lenguaje hacerlo. En mi caso, python.

Por lo tanto: instalar el api de Google con el comando pip:

pip install --upgrade google-api-python-client
pip install --upgrade google-api-python-client
Por lo tanto:

pip install --upgrade google-api-python-client

Después, me ha tocado volver a buscar qué hice, que fue mirar en el manual del API. Viéndolo, el segundo paso fue activarla. Para ello, hay que crear un proyecto:

Creando proyecto API Gmail
Creando proyecto API Gmail
Se puede crear de varias formas, por ejemplo, al hacer click sobre Crear proyecto hará falta volver a refrescar de alguna manera la pantalla para poder actualizar el combo. Una vez actualizado, veremos que se añadirá un nombre de aplicación más o menos aleatorio que podremos seleccionar. Una vez seleccionado, haremos click sobre el botón Continuar que no he incluido en el pantallazo. Después, nos pedirá ir crear o añadir las credenciales al proyecto. 

Ir a añadir credenciales al API de Gmail
Ir a añadir credenciales al API de Gmail
Pero al llegar al gestor de las credenciales tendremos que hacer click sobre el botón Cancelar:

Cancelar la operación de gestión de credenciales
Cancelar la operación de gestión de credenciales

Después nos llevará a otra sección donde seleccionaremos la pestaña relacionada con OAuth. Se rellena el e-mail con el que se gestionará y el nombre o descripción de la aplicación:

OAuth para el API de Gmail
OAuth para el API de Gmail
Y más abajo en la pantalla tenemos el botón Guardar al que haremos click sobre él. Después, nos llevará otra vez a la pestaña que nos indicará que creemos unas credenciales, para la que seleccionaremos que queremos que sea para OAuth:

Seleccionar creación de credenciales para OAuth
Seleccionar creación de credenciales para OAuth

Nos solicitará que indiquemos una descripción (aunque lo llaman ID) para la aplicación (lo llaman "cliente") y el tipo (nosotros marcaremos "otro):

Crear ID y tipo de aplicación para el API de Gmail
Crear ID y tipo de aplicación para el API de Gmail
Al crearlo, nos aparecerán los datos del cliente, que tendremos que aceptar:

ID y secreto del cliente OAuth para el API de Gmail
ID y secreto del cliente OAuth para el API de Gmail
Y nos descargaremos el fichero que contiene las credenciales con las que se conectará nuestro programa.

Descarga de credenciales del API de Gmail
Descarga de credenciales del API de Gmail

A partir de aquí me he puesto a mirar mi antiguo script, que ya llamaba al API original. Uno de los problemas que nos podemos encontrar es que tengamos dos instalaciones de python (¿sacrilegio?): versión 2.7 y 3.6. Hay que tenerlo en cuenta. Además, me he encontrado con que lo que antes me funcionaba, con la nueva instalación ya no tira bien. 

Por cierto: al lanzar el script me pide que me autentique para dar permiso a la aplicación a tirar de los datos necesarios. 

No hay comentarios:

Publicar un comentario