De tour por las Apis de G Suite

Usando las Apis de G Suite en Google Apps Script

Martin Manriquez Leon
GDG IPN
11 min readFeb 7, 2020

--

Apps Script

Google Apps Script es un lenguaje de programación basado en JavaScript que nos permite personalizar y ampliar los productos de G Suite como Documentos, Hojas de cálculo, Presentaciones y Formularios. Para su uso no es necesario instalar nada, ya que nos proporcionamos un editor de código incorporado directamente en el navegador para que nuestros scrips se ejecuten en los servidores de Google.

Algunas de las acciones para las que podermos usar Apps Script son:

  • Agregar menús, diálogos y barras laterales personalizados a Documentos, Hojas de cálculo y Formularios de Google
  • Escribir funciones personalizadas para Hojas de cálculo de Google
  • Publicar apps web independientes o incorporadas en Google Sites
  • Interactuar con otros servicios de Google, como AdSense, Analytics, Calendario, Drive, Gmail y Maps
  • Crear complementos para ampliar Documentos, Hojas de cálculo, Presentaciones y Formularios de Google, y publicarlos en la tienda de complementos

Las APIs de G Suite

Con la API de REST de G SUITE, podemos integrar las apps en el correo electrónico, los calendarios, los contactos y otros datos de G Suite de los usuarios.

Muchas de las API tienen “beans” nativos de Apps Script que nos permiten acceder fácilmente para simplificar la creación y autorización de apps, además de crear complementos que podemos usar en las apps de G Suite.

En la siguiente tabla, se resumen las API más populares.

Introducción a la Api de Google Slides

La API de Presentaciones de Google nos permite crear y modificar presentaciones de Google Slides.

Las aplicaciones pueden integrarse con la API de Presentaciones de Google para crear plantillas de diapositivas automáticamente a partir de datos proporcionados por el usuario y el sistema. Por ejemplo, podríamos usar los detalles del cliente de una base de datos y combinarlos con plantillas prediseñadas y opciones de configuración seleccionadas para crear presentaciones terminadas en una fracción del tiempo que tomaría crearlas manualmente.

Descripción general de la API

La colección de presentaciones proporciona métodos que nos permiten obtener y actualizar elementos dentro de la presentación.

En la mayor parte del uso de la API de Presentaciones probablemente será crear y actualizar presentaciones. Para esto requeriremos el uso del método batchUpdate ; Este método toma una lista de objetos de solicitud que nos permiten hacer cosas como:

  • Crear diapositivas
  • Agregue elementos a diapositivas como formas o tablas
  • Insertar, cambiar y eliminar texto
  • Aplicar transformaciones a elementos
  • Cambiar el orden de las diapositivas

Puedes ver las actualizaciones por lotes para más detalles. Consulta las guías de inicio para obtener un ejemplo simple de principio a fin de cómo usar la API.

La estructura de una presentación.

Una presentación en la API de diapositivas se compone de páginas, que contienen elementos de página.

El ID de una presentación puede derivarse de la URL:

https://docs.google.com/presentation/d/ presentationId / edit

La ID de presentación es una cadena que contiene letras, números y algunos caracteres especiales. La siguiente expresión regular se puede utilizar para extraer el ID de la presentación de una URL de Google Sheets:

/ presentation / d / ([a-zA-Z0-9 -_] +)

Si está familiarizado con la API de Drive, presentationIdcorresponde a la ID del recurso de archivo .

Las páginas y los elementos de página se identifican por ID de objeto.

Páginas

Google Slides tiene los siguientes tipos de páginas:

Maestros: Los patrones de diapositivas definen los estilos de texto, fondo y elementos de página predeterminados que aparecen en todas las diapositivas que usan este patrón. Los elementos de página que deben aparecer en todas las diapositivas deben agregarse al maestro. La mayoría de las presentaciones tienen un maestro, pero algunas pueden tener varias o ninguna.

Diseños: Los diseños sirven como plantilla de cómo se organizarán los elementos de la página de forma predeterminada en las diapositivas que usan un diseño. Cada diseño está asociado con un maestro.

Diapositivas: Estas páginas contienen el contenido que está presentando a su audiencia. La mayoría de las diapositivas se basan en un maestro y un diseño. Puede especificar qué diseño usar para cada diapositiva cuando se crea.

Notas: Estas páginas contienen el contenido para folletos de presentación, incluida una forma que contiene las notas del orador de la diapositiva. Cada diapositiva tiene una página de notas correspondiente. Solo el texto en la forma de las notas del orador se puede modificar con la API de diapositivas.

Maestros de notas: Los maestros de notas definen los estilos de texto y elementos de página predeterminados para todas las páginas de notas. Los maestros de notas son de solo lectura en la API de diapositivas.

Actualizaciones por lotes

El método batchUpdate nos permite actualizar muchos aspectos de una presentación. Los cambios se agrupan en un lote, de modo que si una solicitud falla, no se escribe ninguno de los otros cambios (potencialmente dependientes).

El batchUpdatemétodo funciona tomando uno o más objetos de la solicitud , cada uno de los cuales especifica un único tipo de solicitud para realizar. Hay muchos tipos diferentes de solicitudes. Aquí hay un desglose de los tipos de solicitudes, agrupadas en diferentes categorías.

Trabajando con diapositivas

Trabajando con elementos de página

Trabajando con tablas

Trabajando con gráficos

Trabajando con imágenes y video

Trabajando con texto

El batchUpdatemétodo devuelve un cuerpo de respuesta , que contiene una Respuesta para cada solicitud. Cada respuesta ocupa el mismo índice que la solicitud correspondiente; para solicitudes sin respuesta aplicable, la respuesta en ese índice estará vacía. Las diversas Createsolicitudes normalmente tienen respuestas, de modo que conozca la ID del objeto recién agregado.

Trabajando con ID de objeto

Una presentación en la API de diapositivas se compone de páginas y elementos de página . Estos objetos incluyen una cadena de ID de objeto que es única dentro de una presentación.

Especificar ID de objeto en la creación

Al crear páginas o elementos de página utilizando el método batchUpdate , puede especificar opcionalmente una ID de objeto para el nuevo objeto. Esto le permite crear un objeto y modificarlo dentro de la misma solicitud de actualización de lote, minimizando el número de llamadas a la API de Presentaciones y reduciendo el uso de cuotas .

Las ID de objeto deben tener entre 5 y 50 caracteres de longitud.
Deben comenzar con un carácter alfanumérico ([a-zA-Z0–9]) o un guión bajo (“_”). Los caracteres posteriores pueden ser alfanuméricos o guiones bajos, guiones (“-”) o dos puntos (“:”).

Recomendamos generar una ID de objeto aleatorio en la mayoría de los casos. Por ejemplo, si está utilizando Java, java.util.UUID.randomUUID().toString()debería funcionar bien.

Cuando su aplicación quiera realizar un seguimiento de los objetos durante un período de tiempo más largo, no confíe en la ID del objeto, ya que puede cambiar. Vea la siguiente sección para más detalles.

Realizar un seguimiento de los objetos sin usar la ID del objeto

Cuando realiza una solicitud de API de diapositivas, la ID del objeto normalmente se conserva. (Las excepciones se mencionan en la documentación de referencia del método). Hacer una copia de una presentación completa con la API de Drive también conserva las ID de los objetos.

Sin embargo, no puede depender de que la ID de un objeto no se modifique después de cambiar una presentación en la IU de diapositivas. Por ejemplo, si alguien usa la IU de diapositivas para copiar y pegar un elemento de la página y luego elimina el original, el elemento de la página ahora tendrá una nueva ID única y se perderá la ID que proporcionó anteriormente a través de la API. Como resultado, no recomendamos que almacene ID de objetos en el almacenamiento de su aplicación. En su lugar, debe encontrar objetos en la presentación por su contenido de texto o texto alternativo.

Algunas acciones, especialmente la edición manual utilizando la IU de diapositivas, pueden cambiar las ID de los objetos. Entonces, a largo plazo, haga un seguimiento de los objetos utilizando su contenido de texto.

Las presentaciones recién creadas normalmente usan un conjunto consistente de ID para diapositivas, masters y cuadros de texto predeterminados. Estas identificaciones están sujetas a cambios con el tiempo, por lo que no recomendamos que confíe en esta función. En su lugar, encuentre los elementos que desea modificar utilizando el objeto de presentación devuelto por las llamadas a create () u get () .

Introducción a la API de Google SpreadSheets

La API de Hojas de cálculo de Google le permite leer y modificar cualquier aspecto de una hoja de cálculo. Las hojas de cálculo tienen muchas configuraciones que le permiten crear hojas hermosas y funcionales, por lo que la API también tiene muchas configuraciones. La API ofrece dos formas principales de interactuar con la hoja de cálculo:

Ambas colecciones son fáciles de usar, aunque la colección de hojas de cálculo ofrece muchas más opciones. Para obtener más información sobre estas colecciones y su uso, consulte los enlaces de documentación de referencia anteriores o las siguientes guías para desarrolladores:

Términos comunes

Esta sección explica algunos de los términos que encontrará al leer sobre la API de Hojas de cálculo.

ID de hoja de cálculo

Cada método API requiere un spreadsheetIdparámetro que se utiliza para identificar a qué hoja de cálculo se debe acceder o modificar. Este ID es el valor entre "/ d /" y "/ edit" en la URL de su hoja de cálculo. Por ejemplo, considere la siguiente URL que hace referencia a una hoja de cálculo de Hojas de cálculo de Google:

https://docs.google.com/spreadsheets/d/ spreadsheetId / edit # gid = 0

La ID de la hoja de cálculo es una cadena que contiene letras, números y algunos caracteres especiales. La siguiente expresión regular se puede utilizar para extraer el ID de la hoja de cálculo de una URL de Hojas de cálculo de Google:

/ hojas de cálculo / d / ([a-zA-Z0-9 -_] +)

Si está familiarizado con la API de Drive, spreadsheetIdcorresponde a la ID del recurso de archivo .

ID de hoja

Las hojas individuales en una hoja de cálculo tienen títulos (que deben ser únicos) e ID. Se sheetIdutiliza con frecuencia en la API de hojas para especificar qué hoja se está leyendo o actualizando. En la interfaz de usuario de Hojas, puede encontrar el sheetIdde la hoja abierta en la URL de la hoja de cálculo, como el valor del gidparámetro. A continuación se muestra la estructura de la URL y dónde sheetIdse puede encontrar:

https://docs.google.com/spreadsheets/d/ spreadsheetId / edit # gid = sheetId

La ID de la hoja es numérica, y la siguiente expresión regular se puede usar para extraerla de una URL de Hojas de cálculo de Google:

[# &] gid = ([0-9] +)

También puede obtener los ID de las hojas con la API; consulte el ejemplo Determinar ID de hoja y otras propiedades .

Notación A1

Algunos métodos API requieren un rango en notación A1 . Esta es una cadena como Sheet1!A1:B2, que se refiere a un grupo de celdas en la hoja de cálculo, y generalmente se usa en fórmulas. Por ejemplo, los rangos válidos son:

  • Sheet1!A1:B2 se refiere a las dos primeras celdas en las dos filas superiores de Sheet1.
  • Sheet1!A:A se refiere a todas las celdas en la primera columna de Sheet1.
  • Sheet1!1:2 se refiere a todas las celdas en las dos primeras filas de Sheet1.
  • Sheet1!A5:A se refiere a todas las celdas de la primera columna de la Hoja 1, desde la fila 5 en adelante.
  • A1:B2 se refiere a las dos primeras celdas en las dos filas superiores de la primera hoja visible.
  • Sheet1 se refiere a todas las celdas en Sheet1.

Los rangos con nombre también son compatibles. Cuando un rango con nombre entra en conflicto con el nombre de una hoja, se prefiere el rango con nombre.

Si el nombre de la hoja tiene espacios o comienza con un corchete, encierre el nombre de la hoja con comillas simples ( '), por ejemplo 'Sheet One'!A1:B2. Por simplicidad, es seguro rodear siempre el nombre de la hoja con comillas simples.

Números de serie de fecha / hora

Google Sheets, como la mayoría de las otras aplicaciones de hojas de cálculo, trata los valores de fecha / hora como valores decimales. Esto le permite realizar operaciones aritméticas con ellos en fórmulas, de modo que puede incrementar días o semanas, sumar o restar dos fechas / horas y realizar otras operaciones similares.

Hojas de cálculo de Google utiliza una forma de fecha de época que se usa comúnmente en las hojas de cálculo. La porción del número entero del valor (a la izquierda del decimal) cuenta los días desde el 30 de diciembre de 1899. La porción fraccional (a la derecha del decimal) cuenta el tiempo como una fracción de un día. Por ejemplo, el 1 de enero de 1900 al mediodía sería 2.5, 2 porque son dos días después del 30 de diciembre de 1899 y .5 porque el mediodía es medio día. El 1 de febrero de 1900 a las 3pm sería 33.625.

Tenga en cuenta que Google Sheets trata correctamente el año 1900 como un año común, no un año bisiesto.

Cuando lee los valores de las celdas, puede obtener fechas representadas como cadenas en lugar de valores seriales, utilizando spreadsheet.values.get junto con DateTimeRenderOption .

Respuestas parciales

Las hojas de cálculo son grandes y, a menudo, no necesita todas las partes de la hoja de cálculo. Puede limitar lo que se devuelve en una respuesta de API de Hojas de cálculo de Google, utilizando el fieldsparámetro URL. Esto es especialmente útil en el método spreadsheets.get . Para obtener el mejor rendimiento, enumere explícitamente solo los campos que necesita en la respuesta. El formato del fieldsparámetro es el mismo que la codificación JSON de un FieldMask . En pocas palabras, varios campos diferentes están separados por comas y los subcampos están separados por puntos. Para mayor comodidad, se pueden enumerar varios subcampos del mismo tipo entre paréntesis.

Por ejemplo, para recuperar el título de la hoja de cálculo, las propiedades de la hoja y el valor y formato del rango A1: C10. puede usar la siguiente solicitud:

OBTENGA https://sheets.googleapis.com/v4/spreadsheets/ spreadsheetId ? Rangos = A1: C10 y campos = propiedades.título, hojas (propiedades, data.rowData.values ​​(efectivoValor, efectivoFormato))

Introducción a la API de Google Tasks

La API de Google Tasks le permite buscar, leer y actualizar el contenido y los metadatos de Google Tasks. Este documento describe cómo usar un estilo de llamada RESTful y bibliotecas cliente para varios lenguajes de programación (actualmente Java, Python y PHP) para acceder y editar datos de Google Tasks.

Los sitios o aplicaciones que desean una integración más profunda con Google Tasks pueden aprovechar la API de Google Tasks. Por ejemplo, podría usar la API de Google Tasks para administrar las listas de tareas de Google en una aplicación móvil, o podría integrar tareas en una aplicación de flujo de trabajo más extensa como Au-to-do .

Comience a codificar ahora: comience a escribir una primera aplicación simple inmediatamente en el idioma elegido.

Referencia y recursos de la API: descargue bibliotecas cliente o vaya directamente a la documentación de referencia detallada .

Si no está familiarizado con los conceptos de la API de Google Tasks o las prácticas de codificación de G Suite, consulte nuestras ideas sobre cómo comenzar .

--

--

Martin Manriquez Leon
GDG IPN

GDG and Facebook Deveveloper Circle Lead 💙Passionate about M.L.🔬 DataSciences 🧮 & Astronomy 🛰