Помогите допилить скрипт к Google Таблицам используя API

218
12 марта 2018, 01:02

Нужно составить книгу заявок биржи в виде Google Таблицы - данные из парсинга распределить по колонкам и строчкам, используя скрипт с Public API биржи

в описании Public API биржи https://exmo.me/ru/api/

Пример использования: https://api.exmo.com/v1/order_book/?pair=BTC_USD

Возращаемое значение:

{
  "BTC_USD": {
    "ask_quantity": "3",
    "ask_amount": "500",
    "ask_top": "100",
    "bid_quantity": "1",
    "bid_amount": "99",
    "bid_top": "99",
    "ask": [[100,1,100],[200,2,400]],
    "bid": [[99,1,99]]
  }
}

написал скрипт в Google Sheets

function BTCUSD()
{
var ss = SpreadsheetApp.openById('**********************');
var APIPullSheet = ss.getSheetByName ("BTC/USD");
    APIPullSheet.getRange('A2:E20').clearContent();
var url = "https://api.exmo.com/v1/order_book/?pair=BTC_USD&limit=1000";
var responseAPI = UrlFetchApp.fetch (url);
var parcedData = JSON.parse (responseAPI.getContentText ());
var ask = parcedData.BTC_USD.ask;     
    ask.unshift(['Покупка','Объем']);
for (var key in parcedData.ask) {ask.push(parcedData.ask[key]);}
askRange = APIPullSheet.getRange(2, 1, ask.length, 2);                                         
askRange.setValues(ask); 
var bid = parcedData.BTC_USD.bid;
    bid.unshift(['Продажа','Объем']);
for (var key in parcedData.bid) {bid.push (parcedData.bid[key]);}
bidRange = APIPullSheet.getRange(2, 4, bid.length, 2);
bidRange.setValues(bid);
  }

Ошибка:Неправильная ширина диапазона: указано 3, должно быть 2 (строка 13, файл Код)

Что нужно изменить?

PS: заранее благодарочка всем за потраченное время.

Answer 1

а ларчик просто открывался))

function BTCUSD()
{
var responseAPI = UrlFetchApp.fetch("https://api.exmo.com/v1/order_book/?pair=BTC_USD&limit=1000");
var APIPullSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("BTC/USD");
    APIPullSheet.getRange('A2:E1001').clearContent();
var parcedData = JSON.parse(responseAPI.getContentText ());
var ask = parcedData.BTC_USD.ask;     
    ask.unshift (['Продажа','Объем','Сумма']);
for (var key in parcedData.ask) {ask.push(parcedData.ask[key]);}
askRange = APIPullSheet.getRange (1, 1, ask.length, 3);                                         
askRange.setValues(ask); 
var bid = parcedData.BTC_USD.bid;
    bid.unshift (['Покупка','Объем','Сумма']);
for (var key in parcedData.bid) {bid.push (parcedData.bid[key]);}
bidRange = APIPullSheet.getRange (1, 5, bid.length, 3);
bidRange.setValues(bid);
}

PS: да зачем нужен идентификатор openById('**********************'), если и без него все работает...частота обновления задается в тригеррах... может у кого есть альтернативные идеи - говорят что у гугл таблиц ограничение запросов в день и вообще тупят, может есть лучшие площадки (более удачные) под это дело?

READ ALSO
перемещение drag and drop и изменение размеров

перемещение drag and drop и изменение размеров

Не могу сделать так что бы drag and drop срабатовало менялся размер по отдельности все работает а вместе только drag and drop срабатывает

226
Как сделать рандом на сайте елементов

Как сделать рандом на сайте елементов

Здравствуйте) созрел важный вопрос,на сайте есть блок с видео

242
onkeyup js вывод не по порядку

onkeyup js вывод не по порядку

Есть поиск на сайте, который выдает инфу каждый раз, когда в нем появляется новый символТо есть к примеру пишем heroes, h - выдает результаты, которые...

212