Google Apps Script bietet mehr als 30 integrierte Dienste für die Interaktion mit Nutzerdaten, anderen Google-Systemen und externen Systemen. Diese Dienste werden als globale Objekte bereitgestellt, ähnlich dem Standardobjekt Math
in JavaScript. So bietet Math
beispielsweise Methoden wie random()
und Konstanten wie PI
. Der Spreadsheet-Dienst von Apps Script bietet Methoden wie openById(id)
, Klassen (untergeordnete Objekte) wie Range
und Enums wie DataValidationCriteria
.
Die Referenzdokumentation für Dienste, dieGoogle Workspace -Produkte steuern, finden Sie im Abschnitt „Google Workspace Services“ unter der Überschrift „Reference“ in der Seitenleiste dieser Website. Hilfsdienste (z. B. zum Erstellen von Benutzeroberflächen, zum Parsen von XML oder zum Schreiben von Protokolldaten) werden im Abschnitt „Script Services“ (Script-Dienste) aufgeführt.
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 Standard JavaScript 1.6 sowie einigen Funktionen aus 1.7 und 1.8. Sie können frei wählen, welche Laufzeit Sie für Ihr Skript verwenden möchten. Die V8-Laufzeit wird jedoch dringend empfohlen.
Jede Laufzeit unterstützt JavaScript-Klassen und -Objekte, die Ihrem Skript zusätzlich zu den integrierten und erweiterten Google-Diensten zur Verfügung stehen. Ihre Skripts können allgemeine Objekte wie Array
, Date
, RegExp
, usw. sowie die globalen Objekte Math
und Object
verwenden.
Automatische Vervollständigung verwenden
Der Skriptbearbeiter bietet eine Funktion zur „Inhaltsunterstützung“, die häufiger als „automatische Vervollständigung“ bezeichnet wird. Sie zeigt die globalen Objekte sowie Methoden und Enums an, die im aktuellen Kontext des Skripts gültig sind. Vorschläge zur automatischen Vervollständigung werden automatisch angezeigt, wenn Sie nach einem globalen Objekt, einer Enumeration 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
.
(einen Punkt) eingeben, werden alle Methoden und Enums 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 (auf oberster Ebene) bereit. Auf den Gmail-Dienst wird beispielsweise nur über das Objekt GmailApp
zugegriffen. Einige Dienste stellen mehrere globale Objekte bereit. Der Basisservice enthält beispielsweise vier globale Objekte: Browser
, Logger
, MimeType
und Session
.
Anrufmethoden
Die globalen Objekte fast aller integrierten oder erweiterten Dienste enthalten Methoden, die Daten oder eine Apps Script-Klasse zurückgeben. In Skripts werden Methodenaufrufe in diesem Format ausgeführt:
GlobalObjectName.methodName(argument1, argument2, ..., argumentN);
Ein Skript kann beispielsweise eine E-Mail senden, indem es die Methode sendEmail(recipient, subject, body)
des Gmail-Dienstes aufruft:
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. Die Methode DocumentApp.create()
gibt beispielsweise eine Document
zurück. Die folgenden beiden Codeabschnitte sind daher 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 Klassen zugreifen
Jeder Dienst enthält eine oder mehrere untergeordnete Klassen, auf die nicht über die oberste Ebene als globales Objekt zugegriffen werden kann. Sie können das new
-Schlüsselwort nicht verwenden, um diese Klassen zu erstellen, wie es bei Standard-JavaScript-Klassen wie Date
möglich ist. Sie können nur auf eine untergeordnete Klasse zugreifen, indem Sie eine Methode aufrufen, die sie zurückgibt. Wenn Sie sich nicht sicher sind, wie Sie auf eine bestimmte Klasse zugreifen, rufen Sie die Stammseite für die Referenzdokumentation des Dienstes auf und suchen Sie nach einer Methode, die die gewünschte Klasse zurückgibt.
Umgang mit Schnittstellen
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, bei denen der genaue Typ nicht im Voraus bestimmt werden kann. Die Document service-Methode Body.getChild(childIndex)
gibt beispielsweise ein generisches Element
-Objekt zurück.
Element
ist eine Schnittstelle, die eine andere Klasse darstellt, möglicherweise eine Paragraph
oder Table
. Schnittstellenobjekte sind selten allein nützlich. Stattdessen rufen Sie in der Regel eine Methode wie Element.asParagraph()
auf, um das Objekt wieder in eine genaue Klasse umzuwandeln.
Mit Enums arbeiten
Die meisten Dienste enthalten einige Enums (aufgezählte Typen) mit benannten Werten. Der Drive-Dienst verwendet beispielsweise die Enums Access
und Permission
, 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 Enums 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 Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);