我尝试整理一个简单的Google电子表格,该电子表格从Bittrex API获取数据。我从一个从 / public / getticker 获取字段的示例开始,该字段获取最后,最高和最低价格,并将其更改为来自 / public / getmarketsummary 的请求和 / public / getmarketsummaries (尝试过两者)。它将检索最后一个价格,但其他所有内容都被解析为 undefined
我不是程序员,如果我使用错误的单词或文字样式,请道歉。
这是脚本。
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);
}
}
答案 0 :(得分: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
]]
);
}
}
如果我误解了你的问题,请告诉我。我想修改。