Google Apps Script może korzystać z interfejsów API z całego internetu. Z tego przewodnika dowiesz się, jak używać w skryptach różnych typów interfejsów API.
Łączenie z publicznymi interfejsami API
Użyj usługi UrlFetch, aby bezpośrednio wysyłać żądania do interfejsu API.
W tym przykładzie używamy interfejsu GitHub API do wyszukiwania repozytoriów z co najmniej 100 gwiazdkami, w których jest wzmianka 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, które działają w imieniu użytkownika, zwykle wymagają autoryzacji, często za pomocą protokołu OAuth. Apps Script nie zapewnia wbudowanej obsługi tego protokołu, ale istnieją biblioteki open source, których możesz używać do wykonywania przepływu OAuth i wysyłania danych logowania wraz z żądaniami:
- OAuth1 dla Apps Script: zgodny z OAuth 1.0 i 1.0a.
- OAuth2 w Apps Script: zgodny z OAuth2.
Uwierzytelnianie za pomocą konta usługi
Aby wywołać interfejs API z Apps Script, możesz użyć uwierzytelniania za pomocą konta usługi z jednego z tych powodów:
- Lepsza wydajność dzięki interfejsom Google Cloud APIs
- Automatyzacje i długotrwałe zadania
- Większe bezpieczeństwo (zasada jak najmniejszych uprawnień)
- Scentralizowane zarządzanie dostępem
Aby używać konta usługi w Apps Script, zapoznaj się z artykułem Uwierzytelnianie jako projekt Apps Script za pomocą kont usługi.
Łączenie się z usługami Google Cloud
Możesz użyć metody ScriptApp.getIdentityToken(), aby uzyskać token tożsamości OpenID Connect (token internetowy JSON lub JWT) dla użytkownika. Możesz użyć tego tokena do uwierzytelniania w usługach Google Cloud, takich jak Cloud Run, które są skonfigurowane tak, aby go akceptować.
Więcej informacji znajdziesz w artykule Łączenie się z usługami Google Cloud.
Praca z JSON
Praca z obiektami JSON jest podobna do pracy z XML, z tym że analizowanie lub kodowanie obiektu JSON jest znacznie łatwiejsze.
Gdy interfejs API zwraca nieprzetworzoną odpowiedź JSON, uzyskaj dostęp do ciągu znaków JSON za pomocą metody HTTPResponse.getContentText.
Po pobraniu ciągu znaków użyj funkcji JSON.parse(), aby przeanalizować go i przekształcić w obiekt JavaScript.
// 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 przekonwertować obiekt JavaScript na ciąg JSON na potrzeby ładunku żą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 zwraca w odpowiedzi na żądanie nieprzetworzony kod XML, możesz uzyskać do niego dostęp za pomocą metody HTTPResponse.getContentText().
// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);
Podczas wysyłania żądań XML do interfejsu API używaj metod XmlService do tworzenia kodu XML, który ma zostać wysłany.
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.