Google Apps Script kann mit APIs aus dem gesamten Web interagieren. In dieser Anleitung erfahren Sie, wie Sie in Ihren Skripts mit verschiedenen Arten von APIs arbeiten.
Mit öffentlichen APIs verbinden
Verwenden Sie den UrlFetch-Dienst, um API-Anfragen direkt zu stellen.
Im folgenden Beispiel wird die GitHub API verwendet, um nach Repositories mit mindestens 100 Sternen zu suchen, in denen „Apps Script“ erwähnt wird. Für diese API-Anfrage ist keine Autorisierung oder ein API-Schlüssel erforderlich.
var query = '"Apps Script" stars:">=100"';
var url = 'https://api.github.com/search/repositories'
+ '?sort=stars'
+ '&q=' + encodeURIComponent(query);
var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
Logger.log(response);
Anfragen an Dienste mit OAuth senden
Für APIs, die im Namen eines Nutzers agieren, ist in der Regel eine Autorisierung erforderlich, häufig über das OAuth-Protokoll. Apps Script bietet keine integrierte Unterstützung für das Protokoll, aber es gibt Open-Source-Bibliotheken, mit denen Sie den OAuth-Ablauf ausführen und die Anmeldedaten mit Ihren Anfragen senden können:
- OAuth1 für Apps Script: Kompatibel mit OAuth 1.0 und 1.0a.
- OAuth2 für Apps Script: Kompatibel mit OAuth2.
Mit einem Dienstkonto authentifizieren
Wenn Sie eine API über Apps Script aufrufen möchten, können Sie die Dienstkontoauthentifizierung aus einem der folgenden Gründe verwenden:
- Höhere Leistung mit Google Cloud APIs
- Automatisierungen und Aufgaben mit langer Ausführungszeit
- Verbesserte Sicherheit (Prinzip der geringsten Berechtigung)
- Zentrale Zugriffsverwaltung
Informationen zur Verwendung eines Dienstkontos in Apps Script finden Sie unter Als Apps Script-Projekt mit Dienstkonten authentifizieren.
Mit Google Cloud-Diensten verbinden
Mit der Methode ScriptApp.getIdentityToken() können Sie ein OpenID Connect-Identitätstoken (ein JSON Web Token oder JWT) für den effektiven Nutzer abrufen. Mit diesem Token können Sie sich bei Google Cloud-Diensten wie Cloud Run authentifizieren, die für die Annahme konfiguriert sind.
Weitere Informationen finden Sie unter Verbindung zu Google Cloud-Diensten herstellen.
Mit JSON arbeiten
Die Arbeit mit JSON-Objekten ähnelt der Arbeit mit XML, nur dass das Parsen oder Codieren eines JSON-Objekts viel einfacher ist.
Wenn eine API eine Roh-JSON-Antwort zurückgibt, greifen Sie mit der Methode HTTPResponse.getContentText auf die JSON-String-Antwort zu.
Nachdem Sie den String abgerufen haben, verwenden Sie JSON.parse(), um ihn in ein JavaScript-Objekt zu parsen.
// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);
Wenn Sie ein JavaScript-Objekt in einen JSON-String für eine Anfrage-Payload konvertieren möchten, verwenden Sie JSON.stringify().
var data = {
'entry': {
'group': {
'title': 'Dog Skateboarding',
'description': 'My dog gets some serious air'
},
'keywords': 'dog, skateboard'
}
}
var payload = JSON.stringify(data);
// Make request to API with payload after this point.
XML parsen
Wenn eine externe API eine Roh-XML-Antwort für eine Anfrage zurückgibt, greifen Sie mit der Methode HTTPResponse.getContentText() auf die XML-Antwort zu.
// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);
Wenn Sie XML-Anfragen an eine API senden, verwenden Sie die Methoden XmlService, um das zu sendende XML zu erstellen.
var root = XmlService.createElement('entry')
.setAttribute('keywords', 'dog, skateboard');
var group = XmlService.createElement('group')
.setAttribute('title', 'Dog Skateboarding')
.setAttribute('description', 'My dog gets some serious air');
root.addContent(group);
var document = XmlService.createDocument(root);
var payload = XmlService.getPrettyFormat().format(document);
// Make request to API with payload after this point.