【发布时间】:2023-03-02 21:55:02
【问题描述】:
是否可以在需要 API 密钥的谷歌应用脚本中使用外部 API?
如何使用 Google Apps 脚本从需要密钥的 API 获取数据?
【问题讨论】:
标签: javascript api google-apps-script xmlhttprequest urlfetch
是否可以在需要 API 密钥的谷歌应用脚本中使用外部 API?
如何使用 Google Apps 脚本从需要密钥的 API 获取数据?
【问题讨论】:
标签: javascript api google-apps-script xmlhttprequest urlfetch
Apps 脚本有UrlFetchApp,它获取资源并通过 Internet 与其他主机通信。这包括带有 API 密钥的 URL 请求。
来自这个Using Google Sheets and Google Apps Script to Work with APIs的例子:
示例代码:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet(); //get active spreadsheet
var sheet = ss.getSheetByName('data'); //get sheet by name from active spreadsheet
var apiKey = 'Your API Key'; //apiKey for forecast.io weather api
var long = "-78.395602";
var lat = "37.3013648";
var url = 'https://api.forecast.io/forecast/' + apiKey +"/" + lat +"," + long; //api endpoint as a string
var response = UrlFetchApp.fetch(url); // get api endpoint
var json = response.getContentText(); // get the response content as text
var data = JSON.parse(json); //parse text into json
Logger.log(data); //log data to logger to check
var stats=[]; //create empty array to hold data points
var date = new Date(); //create new date for timestamp
//The following lines push the parsed json into empty stats array
stats.push(date);//timestamp
stats.push(data.currently.temperature); //temp
stats.push(data.currently.dewPoint); //dewPoint
stats.push(data.currently.visibility); //visibility
//append the stats array to the active sheet
sheet.appendRow(stats)
}
【讨论】: