Externe APIs

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 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

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:

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.