如何在需要API密钥的Google Apps脚本中使用外部API?

时间:2018-05-17 17:18:14

标签: javascript api google-apps-script xmlhttprequest urlfetch

是否可以在Google Apps脚本中使用需要API密钥的外部API?

如何使用Google Apps脚本从需要密钥的API获取数据?

经过一番研究

在撰写此问题时,我并不知道HTTP / XHR请求是什么。 Google应用脚本有一个UrlFetchApp类,允许这类请求。

1 个答案:

答案 0 :(得分:1)

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)

}