Виджет на js для с ценами криптовалют с coinmarketcap
Необходим виджет, который будет показывать цену с коинмаркета. Подскажите каким способом это возможно реализовать? Я знаю что у него есть API для получения цен, но не понял как он работает. В идеале я хочу по интервалу получать JSON и брать из него необходимую информацию.
Ответы (1 шт):
Вы можете воспользоваться AJAX для отправки запроса на этот сайт. У этого сайта есть API документация где написаны ссылки на разные разделы сайта. Основная ссылка (та которая видимо вам нужна): https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest. Для начала заходите на API регистрацию и нажимаете GET YOUR TOKEN API NOW, затем после входа вам будет доступен токен, просто копируете его и пользуетесь для отправки запросов. (Не забудьте подключить библиотеку JQuery)
Пример запроса:
$.ajax({
method: 'GET',
url: "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest",
headers: {'X-CMC_PRO_API_KEY': 'Ваш токен'},
dataType: 'json',
success: function(data){
//возвращает массив с курсом всех валют
},
error: function(jqXHR, textStatus, errorThrown){
//обработчик ошибок
}
});
Этот код возвращает объект с данными:
{
"status": {
"timestamp": "2021-05-21T12:48:08.337Z",
"error_code": 0,
"error_message": null,
"elapsed": 16,
"credit_count": 1,
"notice": null,
"total_count": 5248
},
"data": [
{
"id": 1,
"name": "Bitcoin", //<----------- Название валюты
"symbol": "BTC",
"slug": "bitcoin",
"num_market_pairs": 9586,
"date_added": "2013-04-28T00:00:00.000Z",
"tags": [
"mineable",
"pow",
"sha-256",
"store-of-value",
"state-channels",
"coinbase-ventures-portfolio",
"three-arrows-capital-portfolio",
"polychain-capital-portfolio",
"binance-labs-portfolio",
"arrington-xrp-capital",
"blockchain-capital-portfolio",
"boostvc-portfolio",
"cms-holdings-portfolio",
"dcg-portfolio",
"dragonfly-capital-portfolio",
"electric-capital-portfolio",
"fabric-ventures-portfolio",
"framework-ventures",
"galaxy-digital-portfolio",
"huobi-capital",
"alameda-research-portfolio",
"a16z-portfolio",
"1confirmation-portfolio",
"winklevoss-capital",
"usv-portfolio",
"placeholder-ventures-portfolio",
"pantera-capital-portfolio",
"multicoin-capital-portfolio",
"paradigm-xzy-screener"
],
"max_supply": 21000000,
"circulating_supply": 18713700,
"total_supply": 18713700,
"platform": null,
"cmc_rank": 1,
"last_updated": "2021-05-21T12:47:02.000Z",
"quote": {
"USD": {
"price": 41037.9755693302, //<----------- Цена валюты
"volume_24h": 69287722347.89873,
"percent_change_1h": 0.2964171,
"percent_change_24h": -2.04957698,
"percent_change_7d": -18.67165192,
"percent_change_30d": -25.95330445,
"percent_change_60d": -28.44934,
"percent_change_90d": -28.63609647,
"market_cap": 767972363411.7745,
"last_updated": "2021-05-21T12:47:02.000Z"
}
}
},
//.......... СЛЕДУЮЩИЕ ВАЛЮТЫ
Пример рабочего кода:
var currency = {name: '', price: ''};
$.ajax({
method: 'GET',
url: "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest",
headers: {'X-CMC_PRO_API_KEY': 'Ваш токен'},
dataType: 'json',
success: function(data){
currency.name = data.data[0].name;
currency.price = data.data[0].quote.USD.price;
console.log(currency);
},
error: function(jqXHR, textStatus, errorThrown){
alert("ERROR");
}
});
Возвращает этот объект:
{
"name": "Bitcoin",
"price": 40938.93231245679
}
!!!ВАЖНО!!!
API этого сайта ограничивает количество запросов за день и за месяц. За день максимум 333 запроса а за месяц 10 000 (Если выбирать план BASIC у аккаунта при регистрации). То есть вы сможете отправлять запрос в течении дня только каждые 4 минуты не меньше (чтоб виджет работал на протяжении суток без перерыва). И даже если так, то в месяце в котором 31 день в сумме получится 10 323 запроса, то есть последний день запросы будут блокироваться.