Google Apps Script kann mit APIs aus dem gesamten Web interagieren. In diesem Leitfaden wird beschrieben, wie Sie in Ihren Skripts mit verschiedenen Arten von APIs arbeiten.
Mit öffentlichen APIs verbinden
Sie können den UrlFetch
-Dienst verwenden, 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 stellen
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 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 die angeforderte API eine Roh-JSON-Antwort für eine Anfrage zurückgibt, kann über die Methode HTTPResponse.getContentText()
auf die JSON-String-Antwort zugegriffen werden.
Sobald dieser String abgerufen wurde, 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);
Wenn Sie eine Stringdarstellung eines JavaScript-Objekts erstellen möchten, um eine Anfrage zu stellen, 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, 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 das zu sendende XML mit den 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.