Google Apps Script może współpracować z interfejsami API z całego internetu. W tym przewodniku dowiesz się, jak pracować w swoich skryptach z różnymi typami interfejsów API.
Łączenie z publicznymi interfejsami API
Możesz używać usługi UrlFetch
do bezpośredniego wysyłania żądań do interfejsu API.
W tym przykładzie używany jest interfejs GitHub API do wyszukiwania repozytoriów z co najmniej 100 gwiazdkami, które zawierają wzmiankę o „Apps Script”. To żądanie interfejsu API nie wymaga autoryzacji ani klucza 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, które działają w imieniu użytkownika, zwykle wymagają autoryzacji, często za pomocą protokołu OAuth. Apps Script nie obsługuje tego protokołu w ramach wbudowanych funkcji, ale istnieją biblioteki open source, których możesz użyć do wykonania procesu OAuth i przesłania danych logowania wraz z żądaniami:
- OAuth1 w Apps Script: kompatybilny z protokołami OAuth 1.0 i 1.0a.
- OAuth2 w Apps Script: zgodny z protokołem OAuth2.
Praca z plikami JSON
Praca z obiektmi JSON jest podobna do pracy z obiektmi XML, z tym wyjątkiem, że parsowanie lub kodowanie obiektu JSON jest znacznie łatwiejsze.
Jeśli interfejs API zwraca surową odpowiedź JSON, możesz uzyskać dostęp do ciągu znaków odpowiedzi JSON za pomocą metody HTTPResponse.getContentText()
.
Po pobraniu tego ciągu wystarczy wywołać metodę JSON.parse()
, aby uzyskać natywny obiekt.
// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);
Aby utworzyć reprezentacje ciągu znaków obiektu JavaScript w celu wysłania żądania, 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 zwraca surową odpowiedź XML na żądanie, 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);
Gdy wysyłasz żądania XML do interfejsu API, użyj do stworzenia kodu XML 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.