Zewnętrzne interfejsy API

Google Apps Script może korzystać z interfejsów API w całym internecie. W tym przewodniku dowiesz się, jak pracować w swoich skryptach z różnymi typami interfejsów API.

Połącz się z publicznymi interfejsami API

Za pomocą usługi UrlFetch możesz wykonywać bezpośrednio w żądaniach do interfejsu API.

W poniższym przykładzie użyto parametru GitHub API do wyszukaj repozytoria mające co najmniej 100 gwiazdek, w których jest mowa o „Apps Script”. To żądanie do interfejsu API nie wymaga autoryzacji ani klucza interfejsu API.

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

Wysyłanie żądań do usług za pomocą protokołu OAuth

Interfejsy API działające w imieniu użytkownika zwykle wymagają autoryzacji. Często wykorzystują Protokół OAuth. Apps Script nie ma wbudowanych funkcji obsługuje protokół. Istnieją jednak biblioteki open source, Wykonaj przepływ OAuth i wyślij dane logowania wraz z żądaniami:

Praca z plikami JSON

Praca z obiektami JSON przypomina pracę z kodem XML, z tą różnicą, że analizowanie zakodowanie obiektu JSON jest znacznie łatwiejsze.

Jeśli żądany interfejs API zwraca na żądanie nieprzetworzoną odpowiedź JSON, kod JSON dostęp do odpowiedzi w postaci ciągu znaków można uzyskać za pomocą metody HTTPResponse.getContentText() Po pobraniu tego ciągu wywołaj JSON.parse() w ciągu, aby uzyskać natywną reprezentację obiektu.

// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);

Podobnie, aby obiekt JavaScript reprezentował ciąg znaków w postaci ciągu aby wysłać prośbę, użyj funkcji 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.

Analizuj XML

Jeśli zewnętrzny interfejs API zwróci nieprzetworzoną odpowiedź XML dla żądania, możesz uzyskać dostęp do Odpowiedź XML przy użyciu metody HTTPResponse.getContentText()

// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);

Wysyłając żądania XML do interfejsu API, utwórz kod XML do wysłania za pomocą metod 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.