Zewnętrzne interfejsy API

Google Apps Script może korzystać z interfejsów API w całym internecie. Z tego przewodnika dowiesz się, jak korzystać w skryptach z różnymi typami interfejsów API.

Połącz się z publicznymi interfejsami API

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

Poniższy przykład pokazuje wykorzystanie interfejsu API GitHub do wyszukiwania repozytoriów, które mają 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łanie żądań do usług przy użyciu protokołu 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 istnieją biblioteki open source, których można użyć do wykonania procesu OAuth i wysyłania danych logowania w żądaniach:

Praca z kodem JSON

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

Jeśli żądany interfejs API zwraca na żądanie nieprzetworzoną odpowiedź JSON, odpowiedź w postaci ciągu JSON można uzyskać za pomocą metody HTTPResponse.getContentText(). Po pobraniu tego ciągu użyj wywołania JSON.parse(), aby uzyskać reprezentację obiektu natywnego.

// 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 przesłać żądanie do obiektu JavaScript w postaci ciągu znaków, użyj dyrektywy 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 na żądanie, możesz uzyskać do niej dostęp, używając 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 plik XML do wysłania, korzystając z 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.