Google Apps Script może korzystać z interfejsów API z całego internetu. Z tego przewodnika dowiesz się, jak w skryptach korzystać z różnych typów interfejsów API.
Łączenie z publicznymi interfejsami API
Możesz użyć usługi UrlFetch, aby wysyłać żądania interfejsu API bezpośrednio.
W tym przykładzie używamy interfejsu GitHub API, aby wyszukać repozytoria 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żyć do przeprowadzenia procesu OAuth i przesyłania danych uwierzytelniających wraz z żądaniami:
- OAuth1 dla Apps Script: zgodny z OAuth 1.0 i 1.0a.
- OAuth2 dla 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 Scripcie, 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.
Jeśli wywoływany interfejs API zwraca w odpowiedzi na żądanie nieprzetworzony ciąg JSON, można uzyskać do niego dostęp za pomocą metody HTTPResponse.getContentText().
Po pobraniu tego ciągu wystarczy wywołać 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 utworzyć ciąg znaków reprezentujący obiekt JavaScriptu 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 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 utwórz 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.