Google Apps Script bietet mehr als 30 eingebaute Dienste zur Interaktion mit Nutzerdaten, anderen Google-Systemen und externen Systemen. Diese Dienste werden als globale Objekte bereitgestellt, ähnlich dem Standardobjekt Math
von JavaScript. So wie Math
Methoden wie random()
und Konstanten wie PI
bietet, bietet der Tabellendienst von Apps Script Methoden wie openById(id)
, Klassen (untergeordnete Objekte) wie Range
und Enumerationen wie DataValidationCriteria
.
Die Referenzdokumentation für Dienste, die -Produkte steuern, finden Sie in der Seitenleiste dieser Website im Abschnitt „ -Dienste“ unter der Überschrift „Referenz“. Dienstprogramme (z. B. zum Erstellen von Benutzeroberflächen, Parsen von XML oder Schreiben von Protokolldaten) werden im Abschnitt „Script-Dienste“ erfasst.
Moderne JavaScript-Funktionen
Apps Script unterstützt zwei JavaScript-Laufzeiten: die moderne V8-Laufzeit und eine ältere, die auf dem Rhino JavaScript-Interpreter von Mozilla basiert.
Die V8-Laufzeitumgebung unterstützt moderne ECMAScript-Syntax und ‑Funktionen. Die Rhino-Laufzeit basiert auf dem älteren JavaScript 1.6-Standard sowie einigen Funktionen aus 1.7 und 1.8. Sie können frei wählen, welche Laufzeit Sie für Ihr Script verwenden möchten. Die V8-Laufzeit wird jedoch dringend empfohlen.
Jede Laufzeit unterstützt JavaScript-Klassen und ‑Objekte, die zusätzlich zu den integrierten und erweiterten Google-Diensten für Ihr Script verfügbar sind. In Ihren Scripts können Sie gängige Objekte wie Array
, Date
, RegExp
und weitere sowie die globalen Objekte Math
und Object
verwenden.
Automatische Vervollständigung verwenden
Der Script-Editor bietet eine Funktion zur Inhaltshilfe, die auch als „Autocomplete“ bezeichnet wird. Damit werden die globalen Objekte sowie Methoden und Enumerationen angezeigt, die im aktuellen Kontext des Scripts gültig sind. Vorschläge zur automatischen Vervollständigung werden automatisch angezeigt, wenn Sie nach einem globalen Objekt, einer Aufzählung oder einem Methodenaufruf, der eine Apps Script-Klasse zurückgibt, einen Punkt eingeben. Beispiel:
- Wenn Sie den vollständigen Namen eines globalen Objekts eingeben oder eines aus der automatischen Vervollständigung auswählen und dann
.
(ein Punkt) eingeben, werden alle Methoden und Enumerationen für diese Klasse angezeigt. - Wenn Sie einige Zeichen eingeben, werden alle gültigen Vorschläge angezeigt, die mit diesen Zeichen beginnen.
Globale Objekte
Jeder Dienst stellt mindestens ein globales Objekt (Ebene 1) bereit. Beispielsweise wird auf den Gmail-Dienst ausschließlich über das Objekt GmailApp
zugegriffen. Einige Dienste stellen mehrere globale Objekte bereit. Der Base-Dienst umfasst beispielsweise vier globale Objekte: Browser
, Logger
, MimeType
und Session
.
Aufrufmethoden
Die globalen Objekte fast aller integrierten oder erweiterten Dienste enthalten Methoden, die Daten oder eine Apps Script-Klasse zurückgeben. In Scripts werden Methodenaufrufe in diesem Format ausgeführt:
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
Ein Script kann beispielsweise eine E-Mail senden, indem die Methode sendEmail(recipient, subject, body)
des Gmail-Dienstes aufgerufen wird:
GmailApp.sendEmail('claire@example.com', 'Subject line', 'This is the body.');
Wenn eine Methode eine andere Apps Script-Klasse zurückgibt, können Sie Methodenaufrufe in einer Zeile verketten. Rückgabetypen werden sowohl in der automatischen Vervollständigung als auch in der Referenzdokumentation einer Methode angezeigt. Angenommen, die Methode DocumentApp.create()
gibt einen Document
zurück. Die folgenden beiden Codeabschnitte sind also gleichwertig:
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.');
Auf untergeordnete Kurse zugreifen
Jeder Dienst enthält eine oder mehrere untergeordnete Klassen, auf die nicht wie bei einem globalen Objekt von der obersten Ebene aus zugegriffen werden kann. Sie können diese Klassen nicht mit dem Schlüsselwort new
erstellen, wie es bei Standard-JavaScript-Klassen wie Date
der Fall ist. Sie können nur über eine Methode, die sie zurückgibt, auf eine untergeordnete Klasse zugreifen. Wenn Sie sich nicht sicher sind, wie Sie auf eine bestimmte Klasse zugreifen, rufen Sie die Startseite der Referenzdokumentation des Dienstes auf und suchen Sie nach einer Methode, die die gewünschte Klasse zurückgibt.
Umgang mit Benutzeroberflächen
Einige Dienste enthalten spezielle Klassen, die in der Referenzdokumentation als „Schnittstellen“ gekennzeichnet sind. Dies sind generische Klassen, die als Rückgabetypen für Methoden verwendet werden, deren genauer Typ nicht im Voraus bestimmt werden kann. Beispielsweise gibt die Methode Document service (Dokumentdienst) Body.getChild(childIndex)
ein generisches Element
-Objekt zurück.
Element
ist eine Schnittstelle, die eine andere Klasse darstellt, möglicherweise eine Paragraph
oder Table
. Schnittstellenobjekte sind selten für sich allein nützlich. Stattdessen sollten Sie normalerweise eine Methode wie Element.asParagraph()
aufrufen, um das Objekt in eine bestimmte Klasse zu werfen.
Mit Enumerationen arbeiten
Die meisten Dienste enthalten einige enums (aufzählbare Typen) mit benannten Werten. Im Drive-Dienst werden beispielsweise die Enumerationen Access
und Permission
verwendet, um zu bestimmen, welche Nutzer Zugriff auf eine Datei oder einen Ordner haben. In fast allen Fällen greifen Sie über das globale Objekt auf diese Enumerationen zu. Ein Aufruf der Methode Folder.setSharing(accessType, permissionType)
sieht beispielsweise so aus:
// 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);