Bitcoin Forum
May 04, 2024, 11:08:15 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Как вставить цены с coingecko в гугл таблицу?  (Read 159 times)
zasad@ (OP)
Legendary
*
Offline Offline

Activity: 1750
Merit: 4273



View Profile WWW
February 11, 2023, 03:46:40 PM
 #1

Нужна только цена монеты с округлением до сотых.
Подскажите что нужно написать в гугл таблице на примере BTC?

___
Можно с любого подобного сайта, Коинмаркеткап и другие.

.BEST..CHANGE.███████████████
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
███████████████
..BUY/ SELL CRYPTO..
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714864095
Hero Member
*
Offline Offline

Posts: 1714864095

View Profile Personal Message (Offline)

Ignore
1714864095
Reply with quote  #2

1714864095
Report to moderator
andy_pelevin
Legendary
*
Offline Offline

Activity: 2223
Merit: 1123


Altcoinlog


View Profile
February 12, 2023, 08:52:08 AM
 #2

У coingecko есть API. Причем, когда они в рекламе пишут что предоставляют самый полный криптовалютный API для трейдеров и разработчиков - это не преувеличение.

Для получения данных в таблицу можно установить расширение к таблице или написать скрипт для внешнего АПИ. Я когда то давно пробовал пользовать расширением, но это было не очень удобно и с сильно ограниченным функционалом. АПИ - более гибкий и более универсальный инструмент, но для написания АПИ-запроса, нужно чётко знать, какие данные нужны и где их можно взять.

Когда то давно я сделал ветку на БТТ о различных способах автоматизации, но тема не получила поддержки от форумчан и я её забросил.


█████████████████████████████████████████████
█████████████████████`````███████████████████
████████████████████```````██████████████████
███████████████████````````█████████████████
██████████████████```███`````████████████████
█████████████████```█████`````███████████████
████████████████```███████`````██████████████
███████████████```█████████`````█████████████
██████████████```````````````````████████████
█████████████```█████████████`````███████████
████████████```███████████████`````██████████
███████████```█████████████████`````█████████
██████████```███████████████████`````████████
████████`````███████████████████```````██████
█████████████████████████████████████████████
gdgdgdg
Altcoin
КАК НАСТРОИТЬ МАЙНИНГ?
ИНСТРУКЦИЯ

| OK   VKONTAKTE
| TWITTER   TELEGRAM
| FACEBOOK    INSTAGRAM


[/center
zasad@ (OP)
Legendary
*
Offline Offline

Activity: 1750
Merit: 4273



View Profile WWW
February 12, 2023, 07:23:17 PM
 #3

https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd
Этот скрипт выводит
Code:
{"bitcoin":{"usd":21977}}
Как сделать чтобы была только цена?

.BEST..CHANGE.███████████████
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
███████████████
..BUY/ SELL CRYPTO..
andy_pelevin
Legendary
*
Offline Offline

Activity: 2223
Merit: 1123


Altcoinlog


View Profile
February 12, 2023, 09:00:22 PM
Last edit: February 13, 2023, 07:12:45 AM by andy_pelevin
Merited by klarki (2)
 #4

https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd
Этот скрипт выводит
Code:
{"bitcoin":{"usd":21977}}
Как сделать чтобы была только цена?

Это не скрипт, а АПИ-запрос, который возвращает данные в формате JSON. Для того, чтобы достать значение, собственно, и нужно добавить этот запрос в скрипт, который находится на странице "Apps Script". Буквально, в этом ответе написано:  price bitcoin в валюте usd равен 21977. В запросе может быть не одно значение, а несколько, поэтому нужно понимать какие данные в ответе к чему относятся.

К сожалению, тот скрипт, который я оставлял в таблице в качестве примера, на прямую не работает с таким форматом ответа, нужно будет порыться в своих старых таблицах... Я сейчас редко работаю с запросами из таблиц, предпочитаю питон+пандас...

P.S.  Кстати, в таблицы совсем недавно добавили коннектор данных. Там есть "бигквэри", эта штука может очень много, но, увы, она  платная, и какой то "лукер". Я с этими фишками ещё не разбирался, завтра, если будет время, посмотрю...


█████████████████████████████████████████████
█████████████████████`````███████████████████
████████████████████```````██████████████████
███████████████████````````█████████████████
██████████████████```███`````████████████████
█████████████████```█████`````███████████████
████████████████```███████`````██████████████
███████████████```█████████`````█████████████
██████████████```````````````````████████████
█████████████```█████████████`````███████████
████████████```███████████████`````██████████
███████████```█████████████████`````█████████
██████████```███████████████████`````████████
████████`````███████████████████```````██████
█████████████████████████████████████████████
gdgdgdg
Altcoin
КАК НАСТРОИТЬ МАЙНИНГ?
ИНСТРУКЦИЯ

| OK   VKONTAKTE
| TWITTER   TELEGRAM
| FACEBOOK    INSTAGRAM


[/center
witcher_sense
Legendary
*
Offline Offline

Activity: 2338
Merit: 4316

🔐BitcoinMessage.Tools🔑


View Profile WWW
February 13, 2023, 06:23:41 AM
Last edit: February 13, 2023, 06:43:04 AM by witcher_sense
Merited by xandry (2), klarki (2)
 #5

https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd
Этот скрипт выводит
Code:
{"bitcoin":{"usd":21977}}
Как сделать чтобы была только цена?
У меня нет опыта работы с API, но думаю что способов извлечь данные существует достаточно много и решение проблемы может зависеть от конкретной поставленной задачи.

Если у вас не какой-то серьезный проект, который требует чтобы программа обеспечивала бесперебойный доступ для множества пользователей и всегда выводила правильные данные, то можно воспользоваться чем-то минималистичным. Вот написанный на коленке скрипт для извлечения только цены:

Code:
import requests
import time


endpoint = 'https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd'
while True:
    response = requests.get(endpoint)
    if response.status_code == 200:
        data = response.json()
        print(data['bitcoin']['usd'])
        time.sleep(5)

EDIT: Можно опробовать онлайн тут: https://trinket.io/python3/73277981c9

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
andy_pelevin
Legendary
*
Offline Offline

Activity: 2223
Merit: 1123


Altcoinlog


View Profile
February 13, 2023, 07:00:48 AM
Last edit: February 13, 2023, 09:45:56 AM by andy_pelevin
Merited by xandry (4), klarki (2)
 #6

 ^

Скрипт на питоне не годится. Для гугл-таблиц нужен скрипт, написанный в Apps Script. Это диалект языка JS.

Я не большой знаток Apps Script, но по идее скрипт функции должен выглядеть примерно так:

Code:
function get_price(ids) {
  var url = 'https://api.coingecko.com/api/v3/simple/price?vs_currencies=usd&ids=';
  var response = UrlFetchApp.fetch(url+ids);
  var response_text = response.getContentText();
  return JSON.parse(response_text)[0][0]
}

в таблице нужно писать =get_price(ids)
вместо ids поставить адрес ячейки со значением названия токена

Но скрипт выдаёт ошибку превышения лимита скорости обращений. Видимо, все обращения  к api.coingecko.com из гугл-таблиц суммируюся и их становится очень много. Как это победить, не знаю. Возможно, нужно отправлять авторизованные запросы, т.е., получить свой токен авторизации и добавлять его в запрос.


█████████████████████████████████████████████
█████████████████████`````███████████████████
████████████████████```````██████████████████
███████████████████````````█████████████████
██████████████████```███`````████████████████
█████████████████```█████`````███████████████
████████████████```███████`````██████████████
███████████████```█████████`````█████████████
██████████████```````````````````████████████
█████████████```█████████████`````███████████
████████████```███████████████`````██████████
███████████```█████████████████`````█████████
██████████```███████████████████`````████████
████████`````███████████████████```````██████
█████████████████████████████████████████████
gdgdgdg
Altcoin
КАК НАСТРОИТЬ МАЙНИНГ?
ИНСТРУКЦИЯ

| OK   VKONTAKTE
| TWITTER   TELEGRAM
| FACEBOOK    INSTAGRAM


[/center
imhoneer
Legendary
*
Offline Offline

Activity: 2548
Merit: 1511



View Profile
February 13, 2023, 04:37:48 PM
Merited by xandry (2), klarki (2), zasad@ (1)
 #7

Нужна только цена монеты с округлением до сотых.
Подскажите что нужно написать в гугл таблице на примере BTC?

Нашел следующее, вроде понятно написано https://mixedanalytics.com/knowledge-base/import-coingecko-data-to-google-sheets/ или Вам надо что-то другое?



         ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
        █  █▀▀▀▀▀▀▀█  █        
       ▄▀▀▀▀▄     ▄▀▀▀▀▄      
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█ ▄▀▀▀▀▀▀▀▀▀ ▄▄▄▄▄ ▀▀▀▀▀▀▀▀▀▀ █
█ ▀        ▄▀ ▄ ▄ ▀▄          █
█▄▄▄      █   █▀█   █      ▄▄▄█
 █  ▀▀▀▄▄▄█   █▀▀▄  █▄▄▄▀▀▀  █
 █        █   █▄▄█  █        █
 █         ▀▄ ▀ ▀ ▄▀         █
 █           ▀▀▀▀▀         █ █
 █ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀ █
 ▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀
    ▀▀                   ▀▀  



Arbitrum Balance
/



             ▄▄████▄▄
         ▄▄████████████▄▄
      ▄██████████ █████████▄
█▀█▄▄▄███████████ █▀█▀██████
▀▀▀         ▀████      ▀████
▀▀▀▀▀▀▀▀█▀▀▄    █ ████  ████
     ▄▄▄ ▀▄ ▀▀▀▀█        ███
     █▄█   ▀▀▀▀▀█ █████  ███
▄▄▄▄▄▄▄▄█▄▄▄▄▄▄▄█       ▄██
   ▄▄▄     ▄█████ █▄█▄████
   █▄█▀▀▀▀███████ ██████▀
            ▀████████▀▀
              ▀▀██▀▀

           


imhoneer investment fund
/


   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀


Telegram-канал @imho_idea
Woodman
Sr. Member
****
Offline Offline

Activity: 1495
Merit: 374



View Profile
February 14, 2023, 07:14:38 AM
Last edit: February 14, 2023, 09:14:28 AM by Woodman
Merited by klarki (4), andy_pelevin (4), imhoneer (1), zasad@ (1)
 #8

Расширение можно поискать для Google sheets но надо понимать что очень быстро прилетит ограничение. Сделал по примеру с https://mixedanalytics.com/ и через пару запросов прилетел бан от coingecko- {"status":{"error_code":429,"error_message":"You've exceeded the Rate Limit. Please visit https://www.coingecko.com/en/api/pricing to subscribe to our API plans for higher rate limits."}} и расширения тоже будут накладывать ограничения, неделя - две полета и потом глюки, их делают чтобы бабло рубить с пользователей платных подписок.
и там на coingecko почему то нет десятичных.

Лучше написать скрипт на google apps script с записью в таблицу и выполнением по расписанию или при обновлении таблицы. Можно еще и телеграм бота прицепить чтобы в телегу свежие данные слал. Будет надежно и бесплатно. Если надо могу подкинуть код, недавно делал для кукоина кое что подобное, можешь посмотреть в канале @feedbtc #1h data и #daily data берутся по описанному способу.

p.s. вот нужный для вывода цены btc код, чего кругами ходить, в таблице выбираешь Расширения - Apps Script - вставляешь код, настраиваешь ID таблицы, имя листа, sheet.getRange(3, 3) указываешь куда вставлять данные на листе, в коде указан B3, если надо A1 в скобках ставь (1, 1), если D2 то в скобках (2, 4) и т.д... Такая в apps script система координат.  - Cохраняешь - Выполнить. Чуть не забыл перед первым запуском скрипта надо сделать развертывание, погугли это просто.

Code:
const btcprice = () => {
  try {

    const ss = SpreadsheetApp.openById('ID таблицы');
    const sheet = ss.getSheetByName('имя листа');
    const range = sheet.getRange(3, 3);

    //Парсинг цены btc
    var url = "https://api.kucoin.com/api/v1/market/orderbook/level1?symbol=BTC-USDT"
    var response = UrlFetchApp.fetch(url, { 'muteHttpExceptions': true });
    var json = response.getContentText();
    var parsepricebtc = JSON.parse(json);
    var pricebtc = parsepricebtc.data.price;

    //Добавление данных в таблицу
      range.setValue(pricebtc)
  }

  catch (e) {
    Logger.log(`Error: ${e}`);
    return [];
  }
}

Чтобы запускалось автоматически надо настроить триггеры.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!