Zewnętrzne interfejsy API

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Skrypt Google Apps Script może korzystać z interfejsów API z całego internetu. Ten przewodnik pokazuje, jak pracować z różnymi typami interfejsów API w skryptach.

Łączenie z publicznymi interfejsami API

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

Poniższy przykład pokazuje użycie interfejsu GitHub API do wyszukiwania repozytoriów mających co najmniej 100 gwiazdek, które wspominają o „Google Apps Script” – Żądanie 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 z użyciem protokołu OAuth. Apps Script nie zapewnia wbudowanej obsługi protokołu, ale dostępne są biblioteki open source, których możesz użyć do obsługi procesu OAuth i wysyłania danych logowania wraz z żądaniami:

Praca z JSON

Praca z obiektami JSON przypomina pracę z plikiem XML, z tą różnicą, że analizowanie i kodowanie obiektu JSON jest o wiele łatwiejsze.

Jeśli żądanie API zwraca nieprzetworzoną odpowiedź JSON żądania, można uzyskać dostęp do odpowiedzi w formacie JSON za pomocą metody HTTPResponse.getContentText(). Po pobraniu tego ciągu wystarczy wywołać ciąg JSON.parse(), by 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);

I podobnie, aby utworzyć ciąg znaków reprezentujący obiekt JavaScript w celu wysłania żądania, użyj 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 żądania, możesz uzyskać dostęp do odpowiedzi XML za pomocą metody HTTPResponse.getContentText().

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

Przesyłając żądania XML do interfejsu API, utwórz kod XML, 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.