Google Apps Script kann mit APIs aus dem gesamten Web interagieren. In diesem Leitfaden erfahren Sie, wie Sie in Ihren Skripts mit verschiedenen API-Typen arbeiten.
Mit öffentlichen APIs verbinden
Mit dem Dienst UrlFetch
können Sie API-Anfragen direkt senden.
Im folgenden Beispiel wird die GitHub API verwendet, um nach Repositories mit 100 oder mehr Sternen zu suchen, in denen "Apps Script" erwähnt wird. Für diese API-Anfrage ist keine Autorisierung und kein 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
APIs, die im Auftrag eines Nutzers handeln, erfordern in der Regel eine Autorisierung, häufig mithilfe des OAuth-Protokolls. Apps Script bietet keine integrierte Unterstützung für das Protokoll. Es gibt jedoch 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 JSON arbeiten
Die Arbeit mit JSON-Objekten ähnelt der Arbeit mit XML, mit dem Unterschied, dass das Parsen oder Codieren eines JSON-Objekts viel einfacher ist.
Wenn die angeforderte API eine JSON-Rohantwort für eine Anfrage zurückgibt, kann über die Methode HTTPResponse.getContentText()
auf die JSON-Stringantwort zugegriffen werden.
Sobald dieser String abgerufen ist, rufen Sie einfach JSON.parse()
für den String auf, um eine native Objektdarstellung zu erhalten.
// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);
Um eine Stringdarstellung eines JavaScript-Objekts zu erstellen und eine Anfrage zu stellen, verwenden Sie ebenfalls 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 XML-Rohantwort für eine Anfrage zurückgibt, können Sie mit der Methode HTTPResponse.getContentText()
auf die XML-Antwort zugreifen.
// 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, erstellen Sie die zu sendende XML-Datei mithilfe der XmlService
-Methoden.
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.