Servicios de Google integrados

Google Apps Script proporciona más de 30 servicios integrados para interactuar con datos del usuario, otros sistemas de Google y sistemas externos. Estos servicios se proporcionan como objetos globales similares al objeto Math estándar de JavaScript. Por ejemplo, así como Math ofrece métodos como random() y constantes como PI, el servicio de hoja de cálculo de Apps Script ofrece métodos como openById(id), clases (objetos secundarios) como Range y enumeraciones como DataValidationCriteria.

La documentación de referencia de los servicios que controlan productos deGoogle Workspace se recopila en la sección "Google Workspace Servicios" en el encabezado "Referencia" en la barra lateral de este sitio. Los servicios de utilidad (para tareas como crear interfaces de usuario, analizar XML o escribir datos de registro) se recopilan en la sección "Script Services".

Funciones modernas de JavaScript

Apps Script admite dos entornos de ejecución de JavaScript: el moderno entorno de ejecución V8 y uno anterior con la tecnología del intérprete de JavaScript de Rino de Mozilla.

El entorno de ejecución de V8 admite la sintaxis y las funciones modernas de ECMAScript. El entorno de ejecución de Rhino se basa en el estándar anterior de JavaScript 1.6, más algunas funciones de 1.7 y 1.8. Puedes elegir libremente el entorno de ejecución para usar con tu secuencia de comandos, pero se recomienda el entorno de ejecución de V8.

Cada entorno de ejecución es compatible con las clases y los objetos de JavaScript que están disponibles para tu secuencia de comandos, además de los servicios de Google integrados y avanzados. Las secuencias de comandos pueden usar objetos comunes, como Array, Date, RegExp, etc., así como los objetos globales Math y Object.

Cómo usar la función de autocompletar

El editor de secuencias de comandos proporciona una función de "asistencia de contenido", más conocida como "autocompletar", que revela los objetos globales, así como los métodos y las enumeraciones que son válidas en el contexto actual de la secuencia de comandos. Las sugerencias de Autocomplete aparecen automáticamente cada vez que escribes un punto después de un objeto global, una enumeración o una llamada de método que muestra una clase de Apps Script. Por ejemplo:

  • Si escribes el nombre completo de un objeto global o seleccionas uno del autocompletado, luego escribes . (un punto), verás todos los métodos y las enumeraciones de esa clase.
  • Si escribes algunos caracteres, verás todas las sugerencias válidas que comienzan con esos caracteres.

Información sobre los objetos globales

Cada servicio proporciona al menos un objeto global (de nivel superior). Por ejemplo, solo se puede acceder al servicio de Gmail desde el objeto GmailApp. Algunos servicios proporcionan varios objetos globales; por ejemplo, el Servicio base incluye cuatro objetos globales: Browser, Logger, MimeType y Session.

Métodos de llamada

Los objetos globales de casi todos los servicios integrados o avanzados incluyen métodos que muestran datos o una clase de Apps Script. Las secuencias de comandos realizan llamadas a métodos en este formato:

GlobalObjectName.methodName(argument1, argument2, ..., argumentN);

Por ejemplo, una secuencia de comandos puede enviar un correo electrónico si llama al método sendEmail(recipient, subject, body) del servicio de Gmail de la siguiente manera:

GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');

Si un método muestra otra clase de Apps Script, puedes encadenar llamadas de método en una línea. (Los tipos de datos que se muestran se muestran en el autocompletado y en la documentación de referencia de un método). Por ejemplo, el método DocumentApp.create() muestra un Document. Por lo tanto, las siguientes dos secciones de código son equivalentes:

var doc = DocumentApp.create('New document');
var body = doc.getBody();
body.appendParagraph('New paragraph.');

// Same result as above.
DocumentApp.create('New document').getBody().appendParagraph('New paragraph.');

Cómo acceder a las clases secundarias

Cada servicio incluye una o más clases secundarias a las que no se puede acceder desde el nivel superior como un objeto global. No puedes usar la palabra clave new para construir estas clases, como sí puedes hacerlo con las clases estándar de JavaScript, como Date; solo puedes acceder a una clase secundaria llamando a un método que la muestre. Si no estás seguro de cómo acceder a una determinada clase, visita la página raíz de la documentación de referencia del servicio y busca un método que muestre la clase que quieras.

Cómo tratar con interfaces

Algunos servicios incluyen clases especiales etiquetadas como “interfaces” en la documentación de referencia. Estas son clases genéricas que se usan como tipos de datos que se muestran para métodos que no pueden determinar con anticipación el tipo exacto; por ejemplo, el método Body.getChild(childIndex) de servicio de documentos muestra un objeto Element genérico. Element es una interfaz que representa otra clase, posiblemente una Paragraph o una Table. Los objetos de interfaz rara vez son útiles por sí solos. En su lugar, es recomendable que llames a un método como Element.asParagraph() para volver a convertir el objeto en una clase precisa.

Cómo trabajar con enumeraciones

La mayoría de los servicios incluyen algunas enumeraciones (tipos enumerados) de valores con nombre. Por ejemplo, el servicio de Drive usa las enumeraciones Access y Permission para determinar qué usuarios tienen acceso a un archivo o una carpeta. En casi todos los casos, accedes a estas enumeraciones desde el objeto global. Por ejemplo, una llamada al método Folder.setSharing(accessType, permissionType) se ve de la siguiente manera:

// Creates a folder that anyone on the Internet can read from and write to. (Domain administrators can
// prohibit this setting for Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);