Mit den erweiterten Diensten in Apps Script können erfahrene Entwickler mit weniger Einrichtungsaufwand als mit HTTP-Schnittstellen eine Verbindung zu bestimmten öffentlichen Google APIs herstellen. Erweiterte Dienste sind im Grunde Thin Wrapper um diese Google APIs. Sie funktionieren ähnlich wie die integrierten Dienste von Apps Script. So bieten sie beispielsweise die automatische Vervollständigung und Apps Script übernimmt den Autorisierungsablauf automatisch. Sie müssen jedoch einen erweiterten Dienst aktivieren, bevor Sie ihn in einem Script verwenden können.
Welche Google APIs als erweiterte Dienste verfügbar sind, erfahren Sie in der Referenz im Abschnitt Erweiterte Google-Dienste. Wenn Sie eine Google API verwenden möchten, die nicht als erweiterter Dienst verfügbar ist, stellen Sie einfach eine Verbindung zu ihr her wie zu jeder anderen externen API.
Erweiterte Dienste oder HTTP?
Jeder der erweiterten Google-Dienste ist mit einer öffentlichen Google API verknüpft.
In Apps Script können Sie über erweiterte Dienste oder direkt über UrlFetch
auf diese APIs zugreifen.
Wenn Sie die Methode für erweiterte Dienste verwenden, übernimmt Apps Script den Autorisierungsablauf und bietet Unterstützung für die automatische Vervollständigung. Sie müssen den erweiterten Dienst aktivieren, bevor Sie ihn verwenden können. Außerdem bieten einige erweiterte Dienste nur einen Teil der in der API verfügbaren Funktionen.
Wenn Sie die UrlFetch
-Methode verwenden, um direkt auf die API zuzugreifen, behandeln Sie die Google API im Grunde als externe API. Mit dieser Methode können alle Aspekte der API verwendet werden. Sie müssen jedoch die API-Autorisierung selbst vornehmen. Außerdem müssen Sie alle erforderlichen Header erstellen und die API-Antworten parsen.
Im Allgemeinen ist es am einfachsten, nach Möglichkeit einen erweiterten Dienst zu verwenden und die UrlFetch
-Methode nur dann anzuwenden, wenn der erweiterte Dienst nicht die gewünschte Funktionalität bietet.
Voraussetzungen
Bevor Sie einen erweiterten Dienst verwenden können, müssen Sie die folgenden Anforderungen erfüllen:
- Sie müssen in Ihrem Skriptprojekt den erweiterten Dienst aktivieren.
Die API, die dem erweiterten Dienst entspricht, muss im GCP-Projekt (Google Cloud Platform) aktiviert sein, das für Ihr Script verwendet wird.
Wenn für Ihr Scriptprojekt ein Standard-GCP-Projekt verwendet wird, das am oder nach dem 8. April 2019 erstellt wurde, wird die API automatisch aktiviert, nachdem Sie den erweiterten Dienst aktiviert und das Scriptprojekt gespeichert haben. Falls Sie dies noch nicht getan haben, werden Sie möglicherweise auch aufgefordert, den Nutzungsbedingungen für Google Cloud und Google APIs zuzustimmen.
Wenn für Ihr Scriptprojekt ein Standard-GCP-Projekt oder ein älteres Standard-GCP-Projekt verwendet wird, müssen Sie die entsprechende API des erweiterten Dienstes im GCP-Projekt manuell aktivieren. Sie benötigen Bearbeitungszugriff auf das GCP-Projekt, um diese Änderung vorzunehmen.
Weitere Informationen finden Sie unter Cloud Platform-Projekte.
Erweiterte Dienste aktivieren
So nutzen Sie einen erweiterten Google-Dienst:
- Öffnen Sie das Apps Script-Projekt.
- Klicken Sie links auf Editor .
- Klicken Sie links neben Dienste auf Dienst hinzufügen .
- Wählen Sie einen erweiterten Google-Dienst aus und klicken Sie auf Hinzufügen.
Nachdem Sie einen erweiterten Dienst aktiviert haben, ist er in der automatischen Vervollständigung verfügbar.
So werden Methodensignaturen ermittelt
Für erweiterte Dienste werden in der Regel dieselben Objekte, Methodennamen und Parameter wie für die entsprechenden öffentlichen APIs verwendet. Methodensignaturen werden jedoch für die Verwendung in Apps Script übersetzt. Die Funktion zur automatischen Vervollständigung des Script-Editors bietet in der Regel genügend Informationen für den Einstieg. In den folgenden Regeln wird jedoch erläutert, wie Apps Script eine Methodensignatur aus einer öffentlichen Google API generiert.
Anfragen an Google APIs können eine Vielzahl verschiedener Datentypen enthalten, darunter Pfad-, Abfrage- und Anfragetextparameter sowie ein Anfragetext und/oder ein Anhang für den Medienupload. Einige erweiterte Dienste können auch bestimmte HTTP-Anfrageheader akzeptieren, z. B. der erweiterte Kalenderdienst.
Die entsprechende Methodensignatur in Google Apps Script hat die folgenden Argumente:
- Der Anfragetext (in der Regel eine Ressource) als JavaScript-Objekt.
- Pfad oder erforderliche Parameter als einzelne Argumente.
- Der Anhang für den Medienupload als
Blob
-Argument. - Optionale Parameter als JavaScript-Objekt, das Parameternamen zu Werten zuordnet.
- HTTP-Anfrageheader als JavaScript-Objekt, das Headernamen Headerwerten zuordnet.
Wenn die Methode keine Elemente in einer bestimmten Kategorie enthält, wird dieser Teil der Signatur weggelassen.
Es gibt einige Ausnahmen:
- Bei Methoden, die einen Medienupload zulassen, wird der Parameter
uploadType
automatisch festgelegt. - Methoden mit dem Namen
delete
in der Google API heißen in Apps Scriptremove
, dadelete
in JavaScript ein reserviertes Wort ist. - Wenn ein erweiterter Dienst so konfiguriert ist, dass er HTTP-Anfrageheader akzeptiert, und Sie ein JavaScript-Objekt für Anfrageheader festlegen, müssen Sie auch das JavaScript-Objekt mit optionalen Parametern festlegen. Wenn Sie keine optionalen Parameter verwenden, muss es auf ein leeres Objekt gesetzt werden.
Support für erweiterte Dienste
Erweiterte Dienste sind lediglich Thin Wrapper, die die Verwendung einer Google API in Apps Script ermöglichen. Daher werden Probleme, die während der Verwendung auftreten, in der Regel durch die zugrunde liegende API verursacht, nicht durch Apps Script selbst.
Wenn bei der Verwendung eines erweiterten Dienstes ein Problem auftritt, sollten Sie es mithilfe der Supportanleitung für die zugrunde liegende API melden. Links zu diesen Supportanleitungen finden Sie in jedem Leitfaden zu erweiterten Diensten im Abschnitt Referenz zu Apps Script.