Externe APIs

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 ausführen.

Im folgenden Beispiel wird die GitHub API verwendet, um nach Repositories mit 100 oder mehr Sternen zu suchen, die "Apps Script" enthalten. Für diese API-Anfrage ist weder eine Autorisierung noch 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

APIs, die im Namen eines Nutzers agieren, erfordern in der Regel eine Autorisierung, oft ü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:

Mit JSON arbeiten

Die Arbeit mit JSON-Objekten ähnelt der Arbeit mit XML, mit der Ausnahme, dass das Parsen oder Codieren eines JSON-Objekts wesentlich einfacher ist.

Wenn die angeforderte API eine JSON-Rohantwort für eine Anfrage zurückgibt, kann über die Methode HTTPResponse.getContentText() auf die JSON-String-Antwort zugegriffen werden. Nachdem 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);

Um ein JavaScript-Objekt als String darzustellen, um eine Anfrage zu stellen, muss JSON.stringify() ebenfalls verwendet werden.

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 auf 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 sendenden XML-Dateien mit den 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.