Я использую скрипт Google для опроса API CoinMarketCap через электронную таблицу Google, чтобы получить последние цены, рыночные ограничения, расходные материалы и т. Д. Для ряда крипто-монет.
Моя электронная таблица выглядит следующим образом ...
Ticker | Coin | Price | MarketCap | Supply etc
BTC | Bitcoin | 9,000 | 130,000,000,000 | 20,000,000
ETH | Ethereum | 700 | 60,000,000,000 | 80,000,000,000
etc
Затем я нажимаю кнопку обновления, и каждая ячейка, которая нуждается в обновлении, выполняет (одновременно) вызов повторяющихся функций (с тикером / coinID в качестве параметра, идентифицирующего строку) следующим образом ...
function getMarketCap(coinID) {
var url1 = 'https://api.coinmarketcap.com/v1/ticker/';
var full_url = url1 + coinID;
var response = UrlFetchApp.fetch(full_url);
var data = JSON.parse(response.getContentText());
return Number(data[0]['market_cap_usd']);
}
function getTotalSupply(coinID) {
//repetitive code for api call
return Number(data[0]['total_supply']);
}
//about 6 more similar functions making same call but returning different data
Помимо неэлегического, проблема в том, что API CoinMarketCap имеет предел где-то около 30 запросов в минуту, и хотя я запрашиваю менее 30 монет, умножая их на каждый столбец, япревышение лимита.
Я знаю, что это супер базовый вопрос, но я новичок в вызове сценариев Google через электронную таблицу и изо всех сил пытаюсь понять, как в теории я мог бы сделать один вызов API для каждой монеты,и сохраните отдельные столбцы / атрибуты (например, цену, marketCap, снабжение и т. д.), к которым будут обращаться другие ячейки.Или, возможно, можно «подтолкнуть» обновления ячеек таблицы для всей строки из скрипта Google после первого вызова строки?