Los servicios avanzados de Apps Script permiten que los desarrolladores experimentados se conecten a ciertas APIs públicas de Google con menos configuración que con sus interfaces HTTP. Los servicios avanzados son, en esencia, wrappers delgados alrededor de esas APIs de Google. Funcionan de manera similar a los servicios integrados de Apps Script. Por ejemplo, ofrecen autocompletado, y Apps Script controla el flujo de autorización automáticamente. Sin embargo, debes habilitar un servicio avanzado antes de poder usarlo en una secuencia de comandos.
Para ver qué APIs de Google están disponibles como servicios avanzados, busca la sección Servicios avanzados de Google en la Referencia. Si quieres usar una API de Google que no está disponible como servicio avanzado, conéctate a ella como a cualquier otra API externa.
¿Servicios avanzados o HTTP?
Cada uno de los servicios avanzados de Google está asociado con una API pública de Google.
En Apps Script, puedes acceder a estas APIs a través de servicios avanzados o simplemente realizando las solicitudes a la API directamente con UrlFetch
.
Si usas el método de servicio avanzado, Apps Script controla el flujo de autorización y ofrece compatibilidad con el autocompletado. Sin embargo, debes habilitar el servicio avanzado antes de poder usarlo. Además, algunos servicios avanzados solo proporcionan un subconjunto de las funciones disponibles en la API.
Si usas el método UrlFetch
para acceder a la API directamente, en esencia, tratas la API de Google como una API externa. Con este método, se pueden usar todos los aspectos de la API. Sin embargo, debes controlar la autorización de la API por tu cuenta. También debes crear los encabezados necesarios y analizar las respuestas de la API.
En general, es más fácil usar un servicio avanzado siempre que sea posible y solo usar el método UrlFetch
cuando el servicio avanzado no proporcione la funcionalidad que necesitas.
Requisitos
Antes de usar un servicio avanzado, debes cumplir con los siguientes requisitos:
- Debes habilitar el servicio avanzado en tu proyecto de secuencia de comandos.
Debes asegurarte de que la API correspondiente al servicio avanzado esté habilitada en el proyecto de Cloud Platform (GCP) que usa tu secuencia de comandos.
Si tu proyecto de secuencia de comandos usa un proyecto de GCP predeterminado creado el 8 de abril de 2019 o después, la API se habilita automáticamente después de que habilites el servicio avanzado y guardes el proyecto de secuencia de comandos. Si aún no lo hiciste, es posible que también se te solicite que aceptes las Condiciones del Servicio de Google Cloud y de las APIs de Google.
Si tu proyecto de secuencia de comandos usa un proyecto de GCP estándar o un proyecto de GCP predeterminado anterior, debes habilitar la API correspondiente del servicio avanzado en el proyecto de GCP de forma manual. Debes tener acceso de edición al proyecto de GCP para realizar este cambio.
Consulta Proyectos de Cloud Platform para obtener más información.
Habilita los servicios avanzados
Para usar un servicio avanzado de Google, sigue estas instrucciones:
- Abre el proyecto de Apps Script.
- A la izquierda, haz clic en Editor .
- A la izquierda, junto a Servicios, haz clic en Agregar un servicio .
- Selecciona un servicio avanzado de Google y haz clic en Agregar.
Después de habilitar un servicio avanzado, este estará disponible en el autocompletado.
Cómo se determinan las firmas de métodos
Por lo general, los servicios avanzados usan los mismos objetos, nombres de métodos y parámetros que las APIs públicas correspondientes, aunque las firmas de métodos se traducen para su uso en Apps Script. La función de autocompletar del editor de secuencia de comandos suele proporcionar suficiente información para comenzar, pero las reglas que se indican a continuación explican cómo Apps Script genera una firma de método a partir de una API pública de Google.
Las solicitudes a las APIs de Google pueden aceptar una variedad de tipos de datos, incluidos parámetros de ruta, parámetros de búsqueda, un cuerpo de solicitud o un archivo adjunto de carga de contenido multimedia. Algunos servicios avanzados también pueden aceptar encabezados de solicitud HTTP específicos (por ejemplo, el servicio avanzado de Calendario).
La firma del método correspondiente en Google Apps Script tiene los siguientes argumentos:
- Cuerpo de la solicitud (por lo general, un recurso), como un objeto de JavaScript
- Ruta de acceso o parámetros obligatorios, como argumentos individuales
- El archivo adjunto de carga de contenido multimedia, como argumento
Blob
- Parámetros opcionales, como un objeto JavaScript que asigna nombres de parámetros a valores.
- Encabezados de la solicitud HTTP, como un objeto de JavaScript que asigna nombres de encabezado a valores de encabezado
Si el método no tiene ningún elemento en una categoría determinada, se omite esa parte de la firma.
Existen algunas excepciones especiales que debes tener en cuenta:
- Para los métodos que aceptan una carga de contenido multimedia, el parámetro
uploadType
se configura automáticamente. - Los métodos que se llaman
delete
en la API de Google se llamanremove
en Apps Script, ya quedelete
es una palabra reservada en JavaScript. - Si un servicio avanzado está configurado para aceptar encabezados de solicitud HTTP y configuras un objeto JavaScript de encabezados de solicitud, también debes configurar el objeto JavaScript de parámetros opcionales (en un objeto vacío si no usas parámetros opcionales).
Compatibilidad con servicios avanzados
Los servicios avanzados son solo wrappers delgados que permiten el uso de las APIs de Google en Apps Script. Por lo tanto, cualquier problema que se encuentre mientras se usan suele ser un problema con la API subyacente, no con Apps Script.
Si encuentras un problema mientras usas un servicio avanzado, debes informarlo con las instrucciones de asistencia de la API subyacente. Los vínculos a estas instrucciones de asistencia se proporcionan en cada guía de servicios avanzados en la sección Referencia de Apps Script.