Zewnętrzne interfejsy API

Google Apps Script może wchodzić w interakcje z interfejsami API w całej sieci. Z tego przewodnika dowiesz się, jak korzystać w skryptach z różnych typów interfejsów API.

Połącz się z publicznymi interfejsami API

Żądania do interfejsu API możesz wysyłać bezpośrednio za pomocą usługi UrlFetch.

W tym przykładzie użyto interfejsu GitHub API do wyszukania repozytoriów zawierających co najmniej 100 gwiazdek, które wspominają „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łaj żądania do usług przez OAuth

Interfejsy API działające w imieniu użytkownika zwykle wymagają autoryzacji, często z użyciem protokołu OAuth. Apps Script nie zapewnia wbudowanej obsługi protokołu, ale są biblioteki open source, których możesz użyć do wykonania przepływu OAuth i wysyłania danych logowania wraz z żądaniami:

Praca z JSON

Praca z obiektami JSON jest podobna do pracy z kodem XML, z tą różnicą, że analizowanie lub kodowanie obiektu JSON jest znacznie łatwiejsze.

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

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

I podobnie, aby przesłać żądanie za pomocą ciągu znaków w obiekcie JavaScriptu, użyj właściwości 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 zwraca nieprzetworzoną odpowiedź XML na żądanie, możesz uzyskać do niej dostęp, korzystając z metody HTTPResponse.getContentText().

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

Podczas tworzenia żądań 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.