Groogle: preparacion entorno

Groogle es un conjunto de DSL (domain specific language) para trabajar con las APIs de Google

Lo que quiere decir, es que siguiendo una sintáxis sencilla puedes programar pequeños (al principio) programas que interactúen con tu cuenta de Google.

Por ejemplo puedes enviar un correo usando tu cuenta de Gmail con sólo unas pocas lineas, o acceder a una hoja de cálculo y leer/escribir en ella usando una sintaxis muy fácil.

Groovy

Groogle está implementado en Groovy por lo que necesitarás instalarlo. Groovy puede correr en máquinas Windows, Linux y Mac.

Sigue los pasos de la página oficial e instala la versión 3.0.10 :

INFO

También puedes usar las imágenes de Docker que se encuentran disponibles pero para este tutorial vamos a usar la versión instalable.

Google

Una vez que tengas instalado Groovy tienes que crear un proyecto en la consola de Google

WARNING

Te va a solicitar que proporciones una tarjeta de crédito, pero tienes unos meses de prueba y puedes cancelarlo cuando quieras. De todas formas la capa gratuita es suficiente, al menos para el uso que yo hago, y yo no he incurrido todavía en ningún cargo.

El nombre del proyecto no importa, yo he elegido Groogle.

google cloud

Credenciales

Por ahora los scripts que vamos a ejecutar usarán tu cuenta de Google por lo que tenemos que crear unas credenciales "OAuth":

  • en el menu principal (la hamburgesa de arriba a la izquierda)

  • selecciona "API y servicios"

  • submenu "Pantalla de consentimiendo OAuth"

Vamos a crear una pantalla donde se le informará al usuario (a tí mismo) que vas a otorgar acceso a una aplicación (hecha por tí):

  • Nombre, NO pongas Google, Drive, o algo similar a productos de Google o dará un error que no dice nada y te volverás loco. Yo la he llamado "Quickstart"

  • email, el mismo de la cuenta

  • no necesitas autorizar dominios

Una vez guardada crearemos las credenciales OAuth:

  • en el menu de la izquierda

  • selecciona "Credenciales"

  • en la parte superior "+ Crear credenciales"

  • Id de cliente OAuth

En tipo de aplicacion vamos a seleccionar "App de escritorio" pues en este tutorial nos vamos a centrar en desarrollar scripts de consola. El nombre de las credenciales no importa mucho pero si es descriptivo mejor, por ejemplo "Pruebas Groogle".

OJO: Descargar fichero del dialogo que aparece. Si lo cierras sin guardar tendrás que volver a empezar.

INFO

El nombre con el que se guarda es un tanto enfarragoso, lo puedes renombrar por el que quieras, por ejemplo "cliente_groogle.json"

Este fichero habrá que copiarlo/usarlo en los scripts, tenlo a mano en alguna ruta fácil de recordar

Habilitar APIs

El script que vamos a programar va a ser para enviar un correo electrónico usando nuestra cuenta de Gmail por lo que lo primero que hay que hacer es habilitar esta Api en el proyecto:

  • En el menu de la izquierda "Biblioteca"

  • Buscar Gmail

  • Habilitar

    INFO

    Si quieres, en este punto puedes habilitar otras APIs con las que trabajaremos y así no tienes que volver a esta pantalla. Por ejemplo puedes probar a activar Drive y Sheet

Primer script

En una carpeta de tu máquina crea un directorio, por ejemplo, "groogle"

Crea un fichero test.groovy y copia este contenido

test.groovy
@Grab("com.puravida-software.groogle:groogle-gmail:3.1.1")

import com.google.api.services.gmail.GmailScopes

import com.puravida.groogle.GmailService
import com.puravida.groogle.GmailServiceBuilder

import static com.puravida.groogle.GroogleBuilder.build

build {
      withOAuthCredentials {
              applicationName 'test'
              withScopes GmailScopes.GMAIL_SEND
              usingCredentials "client_secret.json"
              storeCredentials true
      }
      register GmailServiceBuilder.build(), GmailService

} with {
      service GmailService sendEmail{
          from "me"
          to "jorge.aguilera@puravida-software.com"
          subject "Hi"
          body """
              Hi
              Oye, estoy probando Groogle y mola mucho
              a seguir dandole
          """.stripIndent()
      }
}
WARNING

Copia en este directorio el fichero con las credenciales y llamalo "client_secret.json" (o como hayas puesto en el usingCredentials)

Básicamente este script:

  • declara un artefacto para bajarse de Internet

  • declara unos cuantos imports necesarios para decir qué vamos a usar

  • creamos una instancia de Groogle (llamando a build ) configurando qué credenciales y scopes va a usar, así como qué servicios va a manejar (Gmail en este caso)

  • una vez creada la instancia, buscamos el servicio GmailService y componemos un email — from , es una direccion de correo. "me" es una palabra reservada por Google para indicar la cuenta de usuario — to , la cuenta de correo a la que estamos escribiendo — etc

Body es una cadena de texto. En Groovy las cadenas de texto se pueden escribir de varias formas:

Si vas a escribir una sola linea, puedes usar una comilla simple: 'Hola pepe'

O una doble: "Hola pepe"

Así puedes meter una de ellas dentro de la otra: "Hola pepe, 'bicho' " (o a la inversa 'Hola pepe, "bicho" ')

Si quieres escribir varias lineas, puedes hacer lo mismo pero usando 3 comillas

""" una linea otra """

Groovy tiene una funcion muy util en las cadenas llamada stripIndent que lo que hace es quitar los tabulados de cada linea de tal forma, que al escribirla en el script podemos meter tabulados para hacerlo legible y al enviarlo se quitan

Ejecutando el script

Simplemente ejecutaremos en una consola:

groovy test.groovy

Si todo ha ido bien, nos mostrará por consola una URL para abrir en un navegador (o tal vez se te abra automáticamente, depende del sistema y del navegador) y autorizar a la aplicación.

Esta es la pantalla de autorización que vería un usuario al usar tu aplicación si fuera publica. Puedes aceptar la petición puesto que es una aplicacion desarrollada por tí mismo.

Una vez aceptada, si no ha habido errores, yo debería recibir un correo a los pocos segundos (o al usuario que hayas puesto como destinatario)

Conclusion

Este es un primer script muy simple, pero si has llegado hasta aqui, tienes ya montado casi todo el proyecto para siguientes scripts

En proximos articulos veremos cómo acceder a nuestro Drive y crear carpetas, subir documentos (o bajarlos), acceder a una hoja de cálculo, etc y con pocas lineas de programación les iremos dotando de funcionalidades …​. o eso espero

Follow comments at Telegram group Or subscribe to the Channel Telegram channel

2019 - 2022 | Mixed with Bootstrap | Baked with JBake v2.6.7