Google Apps Script 可與網路上的 API 互動。本指南將說明如何在指令碼中使用不同類型的 API。
連線至公開 API
您可以使用 UrlFetch
服務
API 要求。
以下範例使用 GitHub API 搜尋標有「Apps Script」字樣的存放區。 這個 API 要求不需要授權或 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);
使用 OAuth 向服務提出要求
代表使用者運作的 API 通常需要授權,通常是使用 OAuth 通訊協定。Apps Script 未提供內建功能 但您可以使用開放原始碼程式庫 執行 OAuth 流程,並使用要求傳送憑證:
- Apps Script 的 OAuth1: 與 OAuth 1.0 和 1.0a 相容。
- Apps Script 的 OAuth2: 與 OAuth2 相容。
使用 JSON
使用 JSON 物件與 XML 類似,差別在於剖析或 因此更加容易
如果要求的 API 為要求傳回原始 JSON 回應,JSON 就會
可透過 方法存取字串回應
HTTPResponse.getContentText()
。
擷取這個字串後,只要在字串上呼叫 JSON.parse()
即可取得
原生物件表示法
// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);
同樣地,如要以字串形式表示 JavaScript 物件,
提出要求,請使用 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.
剖析 XML
如果外部 API 針對要求傳回原始 XML 回應,您可以存取
使用 方法的 XML 回應
HTTPResponse.getContentText()
。
// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);
對 API 提出 XML 要求時,使用
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.