Bittrex API不返回所有值

时间:2017-12-23 19:43:40

标签: json gas

我尝试整理一个简单的Google电子表格,该电子表格从Bittrex API获取数据。我从一个从 / public / getticker 获取字段的示例开始,该字段获取最后,最高和最低价格,并将其更改为来自 / public / getmarketsummary 的请求和 / public / getmarketsummaries (尝试过两者)。它将检索最后一个价格,但其他所有内容都被解析为 undefined

Screenshot of spreadsheet

我不是程序员,如果我使用错误的单词或文字样式,请道歉。

这是脚本。

  function updateBittrex()
{  
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cryptoassets");  
var range = SpreadsheetApp.getActiveSheet().getActiveRange();
var numRows = range.getNumRows();
for (var i = 1; i <= numRows; i++) {
  var currencyPair =  sheet.getRange(i+1,1).getValue();
  var response = UrlFetchApp.fetch('https://bittrex.com/api/v1.1/public/getticker?market=' + currencyPair);
  var bittrexData=JSON.parse(response.getContentText());
if (bittrexData.success = true) {
  sheet.getRange(i+1, 6).setValue("SUCCESS");
  } else {
  sheet.getRange(i+1, 6).setValue("FAIL");
  } 

  sheet.getRange(i+1, 2).setValue(bittrexData.result.Last);
  sheet.getRange(i+1, 3).setValue(bittrexData.result.High);
  sheet.getRange(i+1, 4).setValue(bittrexData.result.Low);
  sheet.getRange(i+1,5).setValue(bittrexData.result.Volume);
}
}

1 个答案:

答案 0 :(得分:0)

以下修改如何?

修改要点:

  • 为了检索&#34;最后,最高和最低价格(和数量?)&#34;,您可以使用https://bittrex.com/api/v1.1/public/getmarketsummary作为终点。
  • 你想要的
  • result是一个数组。
  • 在您的情况下,使用setValues()代替setValue(),您的脚本效率会提高。

上面反映的修改后的脚本如下。

修改后的脚本:

function updateBittrex() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Cryptoassets");  
  var range = SpreadsheetApp.getActiveSheet().getActiveRange();
  var numRows = range.getNumRows();
  for (var i = 1; i <= numRows; i++) {
    var currencyPair =  sheet.getRange(i+1,1).getValue();
    var response = UrlFetchApp.fetch('https://bittrex.com/api/v1.1/public/getmarketsummary?market=' + currencyPair); // Modified
    var bittrexData=JSON.parse(response.getContentText());
    if (bittrexData.success = true) {
      sheet.getRange(i+1, 6).setValue("SUCCESS");
    } else {
      sheet.getRange(i+1, 6).setValue("FAIL");
    }
    sheet.getRange(i+1, 2, 1, 4).setValues( // Modified
      [[
        bittrexData.result[0].Last,
        bittrexData.result[0].High,
        bittrexData.result[0].Low,
        bittrexData.result[0].Volume
      ]]
    );
  }
}

参考文献:

如果我误解了你的问题,请告诉我。我想修改。