Google Apps Script fornisce più di 30 servizi integrati per interagire con i dati utente, altri sistemi Google e sistemi esterni. Questi servizi vengono forniti come oggetti globali simili all'oggetto Math
standard di JavaScript. Ad esempio, così come Math
offre metodi come random()
e costanti come PI
, il servizio Fogli 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 i prodotti è raccolta nella sezione " Servizi" sotto l'intestazione "Riferimento" nella barra laterale di questo sito. I servizi di utilità (per operazioni come la creazione di interfacce utente, l'analisi XML o la scrittura di dati di log) vengono raccolti nella sezione "Servizi di script".
Funzionalità di JavaScript moderne
Apps Script supporta due runtime JavaScript: il runtime moderno V8 e uno precedente basato sull'interprete JavaScript Rhino di Mozilla.
Il runtime V8 supporta la sintassi e le funzionalità di ECMAScript moderne. Il runtime Rhino si basa sullo standard precedente JavaScript 1.6, oltre ad alcune funzionalità di 1.7 e 1.8. Puoi scegliere liberamente il runtime da utilizzare con lo script, ma è vivamente consigliato il runtime V8.
Ogni runtime supporta classi e 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, nonché gli oggetti globali Math
e Object
.
Utilizzare il completamento automatico
L'editor di script fornisce una funzionalità di"assistenza per i contenuti", più comunemente chiamata "completamento automatico", che mostra gli oggetti globali, nonché i metodi e gli enum validi nel contesto corrente dello script. I suggerimenti di completamento vengono visualizzati automaticamente ogni volta che digiti un punto dopo una chiamata a un oggetto, un enum o un metodo globale che restituisce una classe di Apps Script. Ad esempio:
- Se digiti il nome completo di un oggetto globale o ne selezioni uno dal completamento automatico,
poi digiti
.
(un punto), vedrai tutti i metodi e gli enum per quella classe. - Se digiti alcuni caratteri, vedrai 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,
si accede al servizio Gmail 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 di chiamata
Gli oggetti globali di quasi tutti i servizi avanzati o integrati includono metodi che restituiscono dati o un'apposita classe di Apps Script. Gli script eseguono chiamate ai 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 altro metodo di Apps Script, puoi concatenare le chiamate di metodo su una sola riga. I tipi di ritorno 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.');
Accesso ai corsi secondari
Ogni servizio include una o più classi secondarie a cui non è possibile accedere dal livello superiore come per un oggetto globale. Non puoi utilizzare la parola chiave new
per
costruire questi classi, come puoi fare con le classi JavaScript standard come
Date
;
puoi accedere a una classe secondaria solo chiamando un metodo che la restituisce. Se non sai come accedere a un determinato gruppo, visita la pagina principale della documentazione di riferimento del servizio e cerca un metodo che restituisca il gruppo che ti interessa.
Interagire con le interfacce
Alcuni servizi includono classi speciali etichettate come "interfacce"
nella documentazione di riferimento. Si tratta di classi generiche utilizzate come tipi di ritorno per i metodi che non possono determinare il tipo esatto in anticipo. Ad esempio, il metodo Document Service (Servizio di documenti)
Body.getChild(childIndex)
restituisce un oggetto Element
generico.
Element
è un'interfaccia che rappresenta un'altra classe, possibilmente un
Paragraph
o
Table
. Gli oggetti interfaccia raramente sono utili da soli. In genere, è preferibile chiamare un metodo come
Element.asParagraph()
per eseguire il casting dell'oggetto in una classe precisa.
Utilizzo degli enum
La maggior parte dei servizi include alcuni enum (tipi enumerati) di valori denominati. Ad esempio, il servizio Drive utilizza gli enum Access
e Permission
per determinare quali utenti hanno accesso a un file o a una cartella. Nella maggior parte dei casi, accedi a questi enum
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 users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);