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.
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 :
También puedes usar las imágenes de Docker que se encuentran disponibles pero para este tutorial vamos a usar la versión instalable.
Una vez que tengas instalado Groovy tienes que crear un proyecto en la consola de Google
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.
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.
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
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
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
En una carpeta de tu máquina crea un directorio, por ejemplo, "groogle"
Crea un fichero test.groovy
y copia este contenido
@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()
}
}
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
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)
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
2019 - 2024 | Mixed with Bootstrap | Baked with JBake v2.6.7 | Terminos Terminos y Privacidad