Google Apps Script może korzystać z interfejsów API w całym internecie. W tym przewodniku dowiesz się, jak pracować w swoich skryptach z różnymi typami interfejsów API.
Połącz się z publicznymi interfejsami API
Za pomocą usługi UrlFetch
możesz wykonywać
bezpośrednio w żądaniach do interfejsu API.
W poniższym przykładzie użyto parametru GitHub API do wyszukaj repozytoria mające co najmniej 100 gwiazdek, w których jest mowa 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 działające w imieniu użytkownika zwykle wymagają autoryzacji. Często wykorzystują Protokół OAuth. Apps Script nie ma wbudowanych funkcji obsługuje protokół. Istnieją jednak biblioteki open source, Wykonaj przepływ OAuth i wyślij dane logowania wraz z żądaniami:
- Protokół OAuth1 dla Apps Script: Zgodność z OAuth 1.0 i 1.0a.
- OAuth2 w Apps Script: Zgodny z OAuth2.
Praca z plikami JSON
Praca z obiektami JSON przypomina pracę z kodem XML, z tą różnicą, że analizowanie zakodowanie obiektu JSON jest znacznie łatwiejsze.
Jeśli żądany interfejs API zwraca na żądanie nieprzetworzoną odpowiedź JSON, kod JSON
dostęp do odpowiedzi w postaci ciągu znaków można uzyskać za pomocą metody
HTTPResponse.getContentText()
Po pobraniu tego ciągu wywołaj JSON.parse()
w ciągu, aby uzyskać
natywną reprezentację obiektu.
// 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 obiekt JavaScript reprezentował ciąg znaków w postaci ciągu
aby wysłać prośbę, 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 zwróci nieprzetworzoną odpowiedź XML dla żądania, możesz uzyskać dostęp do
Odpowiedź XML przy użyciu 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 kod 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.