Google Apps Script fournit plus de 30 services intégrés pour interagir avec les données utilisateur, d'autres systèmes Google et des systèmes externes. Ces services sont
fournis en tant qu'objets globaux semblables à l'objet standard
Math
de JavaScript. Par exemple, tout comme Math propose des méthodes telles que random() et des constantes
telles que PI, le service Spreadsheet
d'Apps Script propose des méthodes telles que
openById(id),
des classes (objets enfants) telles que
Range, et des enums telles que
DataValidationCriteria.
La documentation de référence pour les services qui contrôlent les produits Google Workspace est rassemblée dans la section "Services Google Workspace" sous l'en-tête "Référence" dans la barre latérale de ce site. Les services utilitaires (pour des tâches telles que la création d'interfaces utilisateur, l'analyse XML ou l'écriture de données de journalisation) sont rassemblés dans la section "Services de script".
Fonctionnalités JavaScript modernes
Apps Script est compatible avec deux environnements d'exécution JavaScript : l'environnement d'exécution V8 moderne et un environnement plus ancien alimenté par l' interpréteur JavaScript Rhino de Mozilla.
ECMAScript L'environnement d'exécution Rhino est basé sur l'ancienne norme JavaScript 1.6, ainsi que sur quelques fonctionnalités des versions 1.7 et 1.8. Choisissez l'environnement d'exécution à utiliser avec votre script, mais l'environnement d'exécution V8 est fortement recommandé.
Chaque environnement d'exécution est compatible avec les classes et les objets JavaScript disponibles pour votre
script, en plus des services Google intégrés
et avancés. Vos
scripts peuvent utiliser des objets courants tels que
Array,
Date,
RegExp,
etc.,
ainsi que les objets globaux
Math et
Object.
Étant donné que le code Apps Script s'exécute sur les serveurs de Google (avec l'
exception des pages de service HTML),
les fonctionnalités JavaScript basées sur le navigateur, telles que la manipulation du DOM ou l'
Window API, ne sont pas
disponibles dans Apps Script.
Saisie semi-automatique
L'éditeur de script fournit une fonctionnalité d'assistance au contenu, plus communément appelée "saisie semi-automatique", qui révèle les objets globaux, ainsi que les méthodes et les enums valides dans le contexte actuel du script. Les suggestions de saisie semi-automatique s'affichent automatiquement lorsque vous saisissez un point après un objet global, un enum ou un appel de méthode qui renvoie une classe Apps Script. Exemple :
- Si vous saisissez le nom complet d'un objet global ou si vous en sélectionnez un dans la saisie semi-automatique, puis que vous saisissez
.(un point), vous voyez toutes les méthodes et tous les enums de cette classe. - Si vous saisissez quelques caractères, vous voyez toutes les suggestions valides qui commencent par ces caractères.
Objets globaux
Chaque service fournit au moins un objet global (de premier niveau). Par exemple, le
service Gmail n'est accessible que depuis
l'objet GmailApp. Certains services
fournissent plusieurs objets globaux. Par exemple, le
service de base inclut quatre objets globaux :
Browser,
Logger,
MimeType et
Session.
Méthodes
Les objets globaux de presque tous les services intégrés ou avancés incluent des méthodes qui renvoient des données ou une classe Apps Script. Les scripts effectuent des appels de méthode dans ce format :
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
Par exemple, un script peut envoyer un e-mail en appelant la
sendEmail(recipient, subject, body)
méthode du service Gmail comme suit :
GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');
Si une méthode renvoie une autre classe Apps Script, enchaînez les appels de méthode sur une seule ligne. (Les types de retour sont affichés à la fois dans la saisie semi-automatique et dans la documentation de référence d'une méthode.) Par exemple, la méthode
DocumentApp.create()
renvoie un Document. Par conséquent, les
deux sections de code suivantes sont équivalentes :
var doc = DocumentApp.create('New document');
var body = doc.getTab('t.0').asDocumentTab().getBody();
body.appendParagraph('New paragraph.');
// Same result as above.
DocumentApp.create('New document').getTab('t.0').asDocumentTab().getBody()
.appendParagraph('New paragraph.');
Classes enfants
Chaque service inclut une ou plusieurs classes enfants auxquelles vous ne pouvez pas accéder depuis le niveau supérieur en tant qu'objet global. Vous ne pouvez pas non plus utiliser le new mot clé pour
construire ces classes, comme vous le feriez avec des classes JavaScript standards telles que
Date.
Pour accéder à une classe enfant, vous devez appeler une méthode qui la renvoie. Si vous ne savez pas comment accéder à une classe spécifique, consultez la page racine de la documentation de référence du service. Elle répertorie les classes du service et les méthodes qui les renvoient.
Interfaces
Certains services incluent des classes libellées "interfaces" dans la documentation de référence. Il s'agit de classes génériques utilisées comme types de retour pour les méthodes qui ne peuvent pas déterminer le type précis à l'avance. Par exemple, la
méthode du service Document
Body.getChild(childIndex)
renvoie un objet Element générique.
L'interface Element représente une autre classe, peut-être un
Paragraph ou
Table. Les objets d'interface sont rarement
utiles en eux-mêmes. Au lieu de cela, appelez une méthode telle que
Element.asParagraph()
pour redéfinir l'objet dans une classe spécifique.
Enums
La plupart des services incluent des enums (types énumérés) de valeurs nommées. Par
exemple, le service Google Drive utilise les
enums Access et
Permission pour déterminer quels utilisateurs
ont accès à un fichier ou à un dossier. Dans la plupart des cas, vous accédez à ces enums à partir de l'objet global, comme illustré dans l'exemple suivant :
// 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);