1. Introducción a Google Apps Script
En este codelab, te presentaremos una de las formas más fáciles de escribir código que permite acceder a las tecnologías para desarrolladores de Google. Todo se hace mediante la aplicación de JavaScript, un lenguaje popular de desarrollo web. Con Google Apps Script, escribirás código para extraer una dirección de una celda en un documento de Hojas de cálculo de Google, generarás un mapa de Google Maps en función de la dirección y, luego, enviarás el mapa como archivo adjunto por medio de Gmail. ¿Lo mejor de todo? Solo serán cuatro líneas de código.
Qué aprenderás
- Cómo usar Google Apps Script con varios servicios de Google, como Hojas de cálculo de Google, Google Maps y Gmail
- Desarrolla código con el editor integrado en el navegador para Apps Script.
Requisitos
- Un navegador web con acceso a Internet
- Una Cuenta de Google (las cuentas de Google Workspace pueden requerir la aprobación del administrador)
- Conocimientos básicos sobre Hojas de cálculo de Google
- Capacidad de leer Notación A1 de Hojas de cálculo
2. Encuesta
¿Cómo usarás este codelab/instructivo?
¿Cómo calificarías tu experiencia con las herramientas para desarrolladores de Google Workspace y APIs?
3. Descripción general
Ahora que sabes de qué se trata este codelab, ¿qué vas a hacer exactamente?
- Aprende un poco sobre Apps Script, que se basa en JavaScript.
- Crea un archivo de Hojas de cálculo de Google.
- Ingresa una dirección en la celda superior izquierda (A1) de la hoja de cálculo.
- Aprende a abrir el editor de Apps Script para cualquier documento.
- Edita el código de Apps Script, guárdalo y ejecútalo.
- Usa Gmail para ver el resultado.
Empecemos.
¿Qué es Google Apps Script?
Google Apps Script es una plataforma de desarrollo que agiliza y facilita la creación de secuencias de comandos y aplicaciones pequeñas que se integran en Google Workspace. Con Apps Script, puedes realizar las siguientes acciones:
- Escribe código en JavaScript y accede a bibliotecas integradas para aplicaciones de Google Workspace, como Gmail, Calendario, Drive, etcétera.
- No tiene nada que instalar: le proporcionamos un editor de código directamente en su navegador, y sus secuencias de comandos se ejecutan en los servidores de Google.
- No tienes que preocuparte por temas complejos, como la seguridad y los permisos de acceso a los datos, ya que la plataforma se encarga de eso.
Apps Script se puede usar para crear diversas aplicaciones, desde chat bots hasta aplicaciones web. Uno de los usos más populares es extender la funcionalidad de las hojas de cálculo de Google Sheets. En el resto de este codelab, aprenderás a usar Apps Script para tomar datos de una hoja de cálculo y conectarlos a otros servicios de Google.
4. Crea un documento de Hojas de cálculo de Google y ingresa una dirección
En una nueva hoja de cálculo de Google, ingresa una dirección válida siguiendo estas instrucciones:
- Crea una hoja de cálculo de Google con este vínculo útil (sheets.google.com/create). Como alternativa, ve a tu unidad de Google Drive (drive.google.com) y haz clic en Nuevo > Hojas de cálculo de Google > Hoja de cálculo en blanco
- Dentro de la hoja de cálculo en blanco, ve a la primera celda en la esquina superior izquierda (A1). Estará en la columna A y la fila 1. Si necesitas volver a familiarizarte, puedes consultar esta descripción de la notación A1.
- Ingresa una dirección válida en la celda. Elige una dirección en el mundo que tenga una ubicación exacta con una dirección, un código postal o una combinación de ciudad y estado o provincia. A continuación, se muestra un ejemplo de una dirección de la ciudad de Nueva York:
Eso es todo lo que tienes que hacer en la hoja. Abramos el editor y escribamos código.
5. Edite código de Apps Script
Ahora que tienes un nuevo documento de Hojas de cálculo de Google, es momento de editar su secuencia de comandos vinculada. Sigue estas instrucciones:
Abrir el editor de secuencias de comandos
En la barra de menú, selecciona Extensiones > Apps Script para abrir el editor de código del navegador de Apps Script.
En una pestaña nueva del navegador, el editor de código muestra la secuencia de comandos vinculada al contenedor predeterminada de la hoja. Se crea automáticamente una función predeterminada llamada myFunction()
, y tu cursor se coloca dentro de la función para que puedas comenzar.
Envía por correo electrónico un mapa de Google de la dirección
La plantilla que recibiste está vacío, así que lo reemplazaremos por nuestra aplicación.
- En el editor de secuencias de comandos, reemplaza el bloque de código
myFunction()
predeterminado por el siguiente código:
/** @OnlyCurrentDoc */
function sendMap() {
var sheet = SpreadsheetApp.getActiveSheet();
var address = sheet.getRange('A1').getValue();
var map = Maps.newStaticMap().addMarker(address);
GmailApp.sendEmail('YOUR_EMAIL_ADDR', 'Map', 'See below.', {attachments:[map]});
}
- Reemplaza la dirección de correo electrónico del marcador de posición (
'YOUR_EMAIL_ADDR'
) por una válida. Por ejemplo, friend@example.com. - Para guardar la secuencia de comandos, haz clic en Guardar .
- Para cambiar el nombre de tu proyecto de Apps Script, haz clic en Proyecto sin título, ingresa un título para el proyecto y haz clic en Cambiar nombre.
Revisión de código
Revisemos las 4 líneas de la función sendMap()
que conforman toda la aplicación. Curiosamente, el código hace referencia a 3 productos diferentes de Google.
La primera línea es un comentario de anotación que afecta la autorización:
/** @OnlyCurrentDoc */
La mayoría de las secuencias de comandos le solicitan al usuario algunos permisos antes de poder ejecutarse. Estos permisos controlan lo que el usuario permite que haga la secuencia de comandos. La primera línea es un comentario que contiene una anotación opcional que le indica a Apps Script que limite el acceso a la hoja de cálculo actual (en lugar de a todas las hojas de cálculo del usuario). Siempre es una práctica recomendada incluir esta anotación cuando trabajas con un solo archivo.
El código usa una declaración de función normal de JavaScript para sendMap()
:
function sendMap() {
La siguiente línea llama al servicio Spreadsheet, al que se puede acceder desde Apps Script a través del objeto SpreadsheetApp
. La hoja que se muestra como resultado se asigna a una variable del mismo nombre. El método getActiveSheet()
obtiene una referencia al objeto de hoja actual y lo almacena en la variable sheet
.
var sheet = SpreadsheetApp.getActiveSheet();
Con el objeto sheet
, hacemos referencia al rango de celdas (de una sola celda) en notación A1 con getRange()
. Un "rango" es un grupo de celdas, incluida una sola, como la celda A1
(la en la que ingresamos la dirección). Para recuperar lo que está dentro del rango, el método getValue()
muestra el valor de la celda superior izquierda del rango y asigna el valor a la variable address
. También puedes intentar agregar más direcciones y leer desde diferentes celdas.
var address = sheet.getRange('A1').getValue();
La tercera línea de código se conecta al servicio Maps de Google por medio del objeto Maps
. newStaticMap()
crea un objeto de mapa estático y el método addMarker()
agrega un "fijado". al mapa usando la dirección de la hoja.
var map = Maps.newStaticMap().addMarker(address);
Por último, el servicio de Gmail a través del objeto MailApp
llama al método sendEmail()
para enviar el correo electrónico que incluye el texto "Ver a continuación". y la imagen del mapa como archivo adjunto.
GmailApp.sendEmail('friend@example.com', 'Map', 'See below.', {attachments:[map]});
}
6. Ejecuta las aplicaciones de Hojas de cálculo de Google, Maps y Gmail
Una vez que se nombra y se guarda, es momento de ejecutar la función. En la parte superior del editor, asegúrate de que sendMap()
esté seleccionado en la lista de funciones y haz clic en Ejecutar.
Una función de Apps Script que valoran los desarrolladores es que no tienes que escribir un código de autorización que le dé al programa acceso a los datos del usuario. Aunque Apps Script administra esto, los usuarios de tu app deben otorgar permiso para que la secuencia de comandos acceda a sus hojas de cálculo y envíe correos electrónicos a través de Gmail. El primer diálogo de autorización se ve de la siguiente manera:
Haz clic en Revisar permisos para continuar.
A continuación, aparecerá una ventana de diálogo de OAuth2 en la que se te pedirá permiso para acceder a tu hoja y enviar correos electrónicos en tu nombre:
Después de que otorgues permiso, la secuencia de comandos se ejecutará hasta su finalización.
Revisa la cuenta de correo electrónico a la que enviaste el mensaje. Deberías ver un correo electrónico que dice “Mapa”. como el asunto y un mensaje que se ve así:
Cuando abras el archivo adjunto en el mensaje de correo electrónico, deberías obtener un mapa de Google Maps con un marcador en la dirección que ingresaste en la hoja:
Con solo cuatro líneas de código, accediste a 3 productos diferentes de Google de manera significativa.
7. Recursos adicionales
El código que aparece en este codelab también está disponible en su repositorio de GitHub, en github.com/googleworkspace/apps-script-intro-codelab. A continuación, encontrarás más recursos que te ayudarán a analizar en profundidad el material que vimos en este codelab y a explorar otras formas de acceder a las herramientas para desarrolladores de Google de manera programática.
Documentación
- Sitio de documentación de Google Apps Script
- Apps Script: Servicio de Gmail
- Apps Script: Servicio de hojas de cálculo
- Apps Script: Servicio de Maps
Videos
Novedades y actualizaciones
- Blog para desarrolladores de Google Workspace
- Twitter: Desarrolladores de Google Workspace (@workspacedevs)
Otros codelabs
Introductorio
- [Hojas de cálculo de Google] Aspectos básicos de Apps Script con Hojas de cálculo de Google
- [APIs de REST] Usa Google Workspace y Las APIs de Google para acceder a archivos y carpetas de tu unidad de Google Drive
Intermedio
- [Apps Script] Complementos de Google Workspace para Gmail
- [Apps Script] Bots personalizados de Hangouts Chat
- [API de REST] Usa Hojas de cálculo de Google como la herramienta de informes de tu aplicación
- [API de REST] Generar presentaciones de Presentaciones de Google con la API de BigQuery