Integrierte Google-Dienste

Google Apps Script bietet mehr als 30 vordefinierte Dienste zur Interaktion mit Nutzerdaten, anderen Google-Systemen und externen Systemen. Diese Dienste werden als globale Objekte bereitgestellt, ähnlich wie das JavaScript-Standardobjekt Math. So wie Math beispielsweise Methoden wie random() und Konstanten wie PI bietet, bietet der Tabellenkalkulationsdienst von Apps Script Methoden wie openById(id), Klassen (untergeordnete Objekte) wie Range und Enums wie DataValidationCriteria.

Die Referenzdokumentation für Dienste, dieGoogle Workspace -Produkte steuern, finden Sie in der Seitenleiste dieser Website im Abschnitt „Google Workspace 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 mit dem Rhino JavaScript Interpreter von Mozilla.

Die V8-Laufzeit 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 „Autovervollständigung“ bezeichnet wird. Damit werden die globalen Objekte sowie Methoden und Enumerationen angezeigt, die im aktuellen Kontext des Scripts gültig sind. Die Funktion zur automatischen Vervollständigung wird automatisch angezeigt, wenn Sie nach einem globalen Objekt-, Enum- oder Methodenaufruf, der eine Apps Script-Klasse zurückgibt, automatisch einen Punkt eingeben. Beispiel:

  • Wenn Sie den vollständigen Namen eines globalen Objekts oder ein Objekt aus der automatischen Vervollständigung eingeben und dann . (einen Punkt) eingeben, werden alle Methoden und Aufzählungen 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. Skripts führen Methodenaufrufe in folgendem Format aus:

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. Die Methode DocumentApp.create() gibt beispielsweise ein Document-Objekt zurück. Daher sind die folgenden beiden Codeabschnitte äquivalent:

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 umfassen 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 Paragraph oder Table. Schnittstellenobjekte sind selten alleine nützlich. Stattdessen sollten Sie in der Regel eine Methode wie Element.asParagraph() aufrufen, um das Objekt wieder in eine präzise Klasse umzuwandeln.

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 Google Workspace users.)
var folder = DriveApp.createFolder('Shared Folder');
folder.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT);