Google Apps Script fornisce più di 30 servizi integrati per interagire
con i dati degli utenti, altri sistemi Google e sistemi esterni. Questi servizi vengono forniti come oggetti globali simili all'oggetto Math standard di JavaScript. Ad esempio, proprio come Math offre metodi come random() e costanti come PI, il servizio Spreadsheet di Apps Script offre metodi come openById(id), classi (oggetti secondari) come Range ed enumerazioni come DataValidationCriteria.
La documentazione di riferimento per i servizi che controllano i prodotti Google Workspace è raccolta nella sezione "Servizi Google Workspace" sotto l'intestazione "Riferimento" nella barra laterale di questo sito. I servizi di utilità (per attività come la creazione di interfacce utente, l'analisi XML o la scrittura di dati di log) vengono raccolti nella sezione "Servizi di scripting".
Funzionalità JavaScript moderne
Apps Script supporta due runtime JavaScript: il runtime moderno V8 e uno meno recente basato sull'interprete JavaScript Rhino di Mozilla.
Il runtime V8 supporta la sintassi e le funzionalità ECMAScript moderne. Il runtime Rhino si basa sullo standard JavaScript 1.6 più datato, oltre ad alcune funzionalità di 1.7 e 1.8. Scegli il runtime da utilizzare con lo script, ma il runtime V8 è vivamente consigliato.
Oltre ai servizi Google integrati e avanzati, ogni runtime supporta classi e oggetti JavaScript disponibili per lo script. Gli script possono utilizzare oggetti comuni come
Array,
Date,
RegExp,
e così via,
nonché gli oggetti globali
Math e
Object.
Poiché il codice Apps Script viene eseguito sui server di Google (ad eccezione delle pagine HTML-service), le funzionalità JavaScript basate sul browser, come la manipolazione del DOM o l'API Window, non sono disponibili in Apps Script.
Completamento automatico
L'editor di script fornisce una funzionalità di"assistenza per i contenuti", più comunemente chiamata "completamento automatico", che rivela gli oggetti globali, nonché i metodi e gli enum validi nel contesto corrente dello script. I suggerimenti di completamento automatico vengono visualizzati automaticamente ogni volta che digiti un punto dopo un oggetto globale, un'enumerazione o una chiamata di 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), vengono visualizzati tutti i metodi e gli enum per quella classe. - Se digiti alcuni caratteri, vedrai tutti i suggerimenti validi che iniziano con questi caratteri.
Oggetti globali
Ogni servizio fornisce almeno un oggetto globale (di primo livello); ad esempio, al servizio Gmail si accede solo 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
Gli oggetti globali di quasi tutti i servizi integrati o avanzati includono metodi che restituiscono dati o una classe Apps Script. Gli script effettuano chiamate di metodi in questo formato:
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
Ad esempio, uno script può inviare un'email chiamando il metodo
sendEmail(recipient, subject, body)
del servizio Gmail nel seguente modo:
GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');
Se un metodo restituisce un'altra classe Apps Script, concatenare le chiamate
di metodo su una riga. I tipi restituiti vengono visualizzati sia nel completamento automatico sia nella documentazione di riferimento di un metodo. Ad esempio, il metodo
DocumentApp.create()
restituisce un Document, pertanto
le due sezioni di codice seguenti sono equivalenti:
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.');
Corsi per bambini
Ogni servizio include una o più classi secondarie a cui non puoi accedere
dal livello superiore come oggetto globale. Inoltre, non puoi utilizzare la parola chiave new per
costruire queste classi, come faresti con le classi JavaScript standard come
Date.
Per accedere a una classe secondaria, devi chiamare un metodo che la restituisca. Se non sai come accedere a una determinata classe, visita la pagina principale della documentazione di riferimento del servizio, che elenca le classi del servizio e i metodi che le restituiscono.
Interfacce
Alcuni servizi includono classi etichettate come "interfacce" nella documentazione di riferimento. Si tratta di classi generiche utilizzate come tipi restituiti per i metodi che
non possono determinare in anticipo il tipo preciso. Ad esempio, il metodo
Document service
Body.getChild(childIndex)
restituisce un oggetto Element generico.
L'interfaccia Element rappresenta un'altra classe, forse un
Paragraph o un
Table. Gli oggetti interfaccia sono raramente utili da soli; chiama invece un metodo come Element.asParagraph() per eseguire il cast dell'oggetto in una classe specifica.
Enum
La maggior parte dei servizi include enumerazioni (tipi enumerati) di valori denominati. Ad esempio, il servizio Google Drive utilizza le enumerazioni Access e Permission per determinare quali utenti hanno accesso a un file o a una cartella. Nella maggior parte dei casi, si accede a questi enum dall'oggetto globale, come mostrato nell'esempio seguente:
// 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);