Servizi Google integrati

Google Apps Script fornisce più di 30 servizi integrati per interagire con i dati dell'utente, con altri sistemi Google e con i sistemi esterni. Questi servizi vengono forniti come oggetti globali simili all'oggetto standard Math di JavaScript. Ad esempio, proprio come Math offre metodi come random() e costanti come PI, il servizio Fogli di lavoro di Apps Script offre metodi come openById(id), classi (oggetti secondari) come Range ed enum come DataValidationCriteria.

La documentazione di riferimento per i servizi che controllano Google Workspace i prodotti sono raccolti nella sezione "Google Workspace Servizi" sotto l'intestazione "Riferimento" nella barra laterale di questo sito. I servizi di utilità (per elementi quali la creazione di interfacce utente, l'analisi del codice XML o la scrittura dei dati di log) vengono raccolti nella sezione "Servizi di script".

Funzionalità JavaScript moderne

Apps Script supporta due runtime JavaScript: il runtime V8 moderno e un runtime meno recente basato sull'interprete JavaScript Rhino di Mozilla.

Il runtime V8 supporta la sintassi e le funzionalità moderne di ECMAScript. Il runtime Rhino si basa sul vecchio standard JavaScript 1.6, oltre ad alcune funzionalità da 1.7 e 1.8. Puoi scegliere liberamente il runtime da utilizzare con lo script, ma il runtime V8 è vivamente consigliato.

Ogni runtime supporta le classi e gli oggetti JavaScript disponibili per lo script oltre ai servizi Google avanzati e integrati. Gli script possono utilizzare oggetti comuni come Array, Date, RegExp e così via, così come gli oggetti globali Math e Object.

Utilizzo del completamento automatico

L'editor di script fornisce una funzionalità di"assistenza ai contenuti", più comunemente chiamata "completamento automatico", che rivela gli oggetti globali, nonché i metodi e le enumerazioni valide nel contesto corrente dello script. I suggerimenti di completamento automatico vengono visualizzati automaticamente ogni volta che digiti un punto dopo una chiamata a un oggetto globale, un'enumerazione o una chiamata al metodo che restituisce una classe Apps Script. Ad esempio:

  • Se digiti il nome completo di un oggetto globale o ne selezioni uno dal completamento automatico, quindi digiti . (un punto), vedrai tutti i metodi e le enumerazioni per quella classe.
  • Se digiti più caratteri, verranno visualizzati tutti i suggerimenti validi che iniziano con quei caratteri.

Informazioni sugli oggetti globali

Ogni servizio fornisce almeno un oggetto globale (di primo livello); ad esempio, il servizio Gmail è accessibile esclusivamente dall'oggetto GmailApp. Alcuni servizi forniscono più oggetti globali; ad esempio, il servizio di base include quattro oggetti globali: Browser, Logger, MimeType e Session.

Metodi di chiamata

Gli oggetti globali di quasi tutti i servizi avanzati o integrati includono metodi che restituiscono dati o una classe Apps Script. Gli script effettuano chiamate al metodo nel seguente formato:

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

Ad esempio, uno script può inviare un'email chiamando il metodo sendEmail(recipient, subject, body) del servizio Gmail, in questo modo:

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

Se un metodo restituisce un'altra classe di Apps Script, puoi concatenare le chiamate al metodo su un'unica riga. I tipi restituiti sono mostrati sia nel completamento automatico sia nella documentazione di riferimento di un metodo. Ad esempio, il metodo DocumentApp.create() restituisce un Document, pertanto le seguenti due sezioni di codice sono equivalenti:

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.');

Accesso ai corsi figlio

Ciascun servizio include una o più classi figlio a cui non è possibile accedere dal livello superiore come può essere un oggetto globale. Non puoi utilizzare la parola chiave new per creare queste classi, come per le classi JavaScript standard come Date; puoi accedere a una classe figlio solo chiamando un metodo che la restituisca. Se non sai come accedere a una determinata classe, visita la pagina principale della documentazione di riferimento del servizio e cerca un metodo che restituisca la classe desiderata.

Gestione delle interfacce

Alcuni servizi includono classi speciali etichettate come "interfacce" nella documentazione di riferimento. Si tratta di classi generiche utilizzate come tipi restituiti per i metodi che non possono determinare il tipo esatto in anticipo; ad esempio, il metodo Servizio documenti Body.getChild(childIndex) restituisce un oggetto Element generico. Element è un'interfaccia che rappresenta un'altra classe, ad esempio Paragraph o Table. Gli oggetti dell'interfaccia raramente sono utili da soli. In genere è consigliabile chiamare un metodo come Element.asParagraph() per ritrasmettere l'oggetto a una classe precisa.

Utilizzo delle enumerazioni

La maggior parte dei servizi include alcune enumerazioni (tipi enumerati) di valori denominati. Ad esempio, il servizio Drive utilizza le enumerazioni Access e Permission per determinare quali utenti hanno accesso a un file o una cartella. In quasi tutti i casi, si accede a queste enumerazioni dall'oggetto globale. Ad esempio, una chiamata al metodo Folder.setSharing(accessType, permissionType) ha il seguente aspetto:

// 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);