【问题标题】:Can't get data from API on my Google Spreadsheet无法从我的 Google 电子表格上的 API 获取数据
【发布时间】:2020-05-31 08:49:01
【问题描述】:

我设法使用此代码脚本将数据从 https://api.hitbtc.com/api/2/public/ticker 获取到我的 Google 电子表格

    function ticker(){
  var rows=[],obj_array=null;
  try {obj_array=JSON.parse(UrlFetchApp.fetch("https://api.hitbtc.com/api/2/public/ticker").getContentText());} catch (e) {obj_array=null;}
  if (obj_array!=null){
    for (r in obj_array) {rows.push([obj_array[r].symbol,parseFloat(obj_array[r].last),parseFloat(obj_array[r].volume),parseFloat(obj_array[r].ask),parseFloat(obj_array[r].bid)]);}
    var ss=SpreadsheetApp.getActiveSpreadsheet(),sheet=ss.getSheetByName('Hitbtc');ss.getRange("Hitbtc!A1").setValue(new Date());
    try {var range=sheet.getRange(2,1,sheet.getLastRow(),6).clearContent();} catch(e) {Logger.log("error");}
    if (rows==null||rows=="") {Browser.msgBox("Oops, no data"); return false;}
    range=sheet.getRange(2,1,rows.length,5); range.setValues(rows); 
  }
}

然后我尝试使用 https://api.kucoin.com/api/v1/market/allTickers 的另一个 API,我无法获取数据。始终显示 #NUM!。有人可以帮我吗?

function kuticker(){
  var rows=[],obj_array=null;
  try {obj_array=JSON.parse(UrlFetchApp.fetch("https://api.kucoin.com/api/v1/market/allTickers").getContentText());} catch (e) {obj_array=null;}
  if (obj_array!=null){
    for (r in obj_array) {rows.push([obj_array[r].symbol,parseFloat(obj_array[r].last),parseFloat(obj_array[r].vol),parseFloat(obj_array[r].buy),parseFloat(obj_array[r].sell)]);}
    var ss=SpreadsheetApp.getActiveSpreadsheet(),sheet=ss.getSheetByName('Kucoin');ss.getRange("Kucoin!A1").setValue(new Date());
    try {var range=sheet.getRange(2,1,sheet.getLastRow(),6).clearContent();} catch(e) {Logger.log("error");}
    if (rows==null||rows=="") {Browser.msgBox("Oops, no data"); return false;}
    range=sheet.getRange(2,1,rows.length,5); range.setValues(rows); 
  }
}

这里是文件 https://docs.google.com/spreadsheets/d/17lDKTVgqw99zqXYtuWHT3FgH7ahyyIqgGxgd4wld8cw/edit?usp=sharing

谢谢

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    这个答案怎么样?

    修改点:

    • 我认为您的问题的原因是由于从https://api.hitbtc.com/api/2/public/ticker 检索到的对象与从https://api.kucoin.com/api/v1/market/allTickers 检索到的对象之间的结构不同。
      • 在前者,数据数组可以直接来自obj_array
      • 在后者中,数据数组包含在obj_array.data.ticker中。

    当这反映到您的脚本时,请修改您的kuticker() 函数如下。

    修改脚本:

    从:
    obj_array=JSON.parse(UrlFetchApp.fetch("https://api.kucoin.com/api/v1/market/allTickers").getContentText());
    
    到:
    obj_array = JSON.parse(UrlFetchApp.fetch("https://api.kucoin.com/api/v1/market/allTickers").getContentText()).data.ticker;
    

    结果:

    运行上述修改后的脚本,可以得到如下结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      • 2014-08-09
      • 2017-12-01
      相关资源
      最近更新 更多