Вот обновленная реализация (проверена на листе, и она успешно добавляет строки):
function appendApiData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var coinsheet = ss.getSheetByName('Sheet1');
var url = 'https://api.kraken.com/0/public/OHLC?pair=XXBTZEUR&since=0&interval=1';
var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
var parsedResponse = JSON.parse(response.getContentText());
var data = parsedResponse.result['XXBTZEUR'];
for (var i = 0; i < data.length; i++) {
var utcSeconds = data[i][0];
var mdate = new Date(0); // The 0 there is the key, which sets the date to the epoch
mdate.setUTCSeconds(utcSeconds);
var open = parseFloat(data[i][1])
var high = parseFloat(data[i][2])
var low = parseFloat(data[i][3])
var close = parseFloat(data[i][4])
var row = [mdate, open, high, low, close];
Logger.log(row)
coinsheet.appendRow(row);
}
}
А вот выдержка из журналов:
[18-06-01 11:44:41:028 PDT] [Thu May 31 23:45:00 GMT-07:00 2018, 6452.5, 6452.5, 6447.6, 6448.2]
[18-06-01 11:44:41:146 PDT] [Thu May 31 23:46:00 GMT-07:00 2018, 6450.5, 6450.9, 6450.5, 6450.6]
[18-06-01 11:44:41:263 PDT] [Thu May 31 23:47:00 GMT-07:00 2018, 6450.6, 6450.6, 6447.1, 6449.7]
[18-06-01 11:44:41:364 PDT] [Thu May 31 23:48:00 GMT-07:00 2018, 6449.5, 6449.7, 6447.2, 6447.2]
[18-06-01 11:44:41:446 PDT] [Thu May 31 23:49:00 GMT-07:00 2018, 6447.2, 6450.5, 6447.2, 6450.5]
Некоторые примечания относительно того, чтоЯ изменил:
- если вы не собираетесь использовать промежуточные значения, вы можете связать воедино вызовы методов (т. Е.
JSON.parse(response.getContentText())
) - избежать
JSON.stringify()
с последующим JSON.parse()
, вы без необходимости кодируете / декодируете данные - удаляете внутренний цикл , вы явно ссылаетесь на элементы массива по индексу, поэтому в этом нет необходимости.В текущем состоянии внутренний цикл заставляет вас обрабатывать каждую строку [количество элементов строки] раз
- избегать
new Array()
, просто используйте литерал массива (то есть []
) - при построении строки необходимо создать массив значений строки, а не массив, содержащий один объект.См. Пример Sheet.appendRow () в документации