Bittrex API不返回所有值

问题描述 投票:0回答:1

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

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);
}
}
json gas
1个回答
0
投票

以下修改怎么样?

修改要点:

  • 为了检索“最后,最高和最低价格(和卷?)”,您可以使用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
      ]]
    );
  }
}

参考文献:

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

© www.soinside.com 2019 - 2024. All rights reserved.