Google Apps Script kann mit APIs aus dem gesamten Web interagieren. In diesem Leitfaden erfahren Sie, wie Sie in Ihren Scripts mit verschiedenen Arten von APIs arbeiten.
Verbindung zu öffentlichen APIs herstellen
Mit dem Dienst UrlFetch
können Sie direkt API-Anfragen 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 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 stellen
APIs, die im Namen eines Nutzers handeln, erfordern in der Regel eine Autorisierung, oft mit dem OAuth-Protokoll. 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 rohe JSON-Antwort für eine Anfrage zurückgibt, kann über die Methode HTTPResponse.getContentText()
auf die JSON-Stringantwort zugegriffen werden.
Rufe dann 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);
Wenn du eine Stringdarstellung eines JavaScript-Objekts erstellen möchtest, um eine Anfrage zu stellen, verwende 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, 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 mithilfe der Methoden XmlService
.
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.