💰 Урок 12: Multi API — криптовалюти та валюти
💡 У цьому уроці ми вперше підключаємо НЕ ОДИН API, а декілька одночасно.
🔥 Це вже принцип справжніх backend-систем:
програма збирає дані з різних сервісів і об’єднує їх в один результат.
🧠 Ідея уроку
Наш бот:
1️⃣ бере криптовалюту (CoinGecko)
2️⃣ бере курс валют (Exchange API)
3️⃣ рахує значення в гривнях
4️⃣ формує красивий звіт
🌍 API криптовалют
https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,dogecoin,solana,cardano,ripple&vs_currencies=usd
💵 API валют (ВИПРАВЛЕНИЙ)
https://open.er-api.com/v6/latest/USD
✔ це стабільний API курсів валют
✔ більше не використовуємо exchangerate.host
🤖 Повний код бота
from bendbandbot import SimpleBot
import requests
with open("token.key", "r", encoding="utf-8") as f:
token = f.read().strip()
bot = SimpleBot(token)
def crypto(update):
# 🌍 крипта
crypto_url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum,dogecoin,solana,cardano,ripple&vs_currencies=usd"
# 💵 валюта (СТАБІЛЬНИЙ API)
rates_url = "https://open.er-api.com/v6/latest/USD"
crypto_data = requests.get(crypto_url).json()
rates_data = requests.get(rates_url).json()
# 🛡 перевірка
if "rates" not in rates_data:
bot.send(update, "❌ Помилка отримання валют")
return
usd_to_uah = rates_data["rates"]["UAH"]
icons = {
"bitcoin": "₿",
"ethereum": "Ξ",
"dogecoin": "🐶",
"solana": "☀",
"cardano": "💎",
"ripple": "⚡"
}
msg = "💰 Криптовалюти\n\n"
for coin in crypto_data:
usd = crypto_data[coin]["usd"]
uah = usd * usd_to_uah
icon = icons.get(coin, "🪙")
msg += (
f"{icon} {coin.capitalize()}\n"
f"${usd}\n"
f"≈ {round(uah, 2)} грн\n\n"
)
bot.send(update, msg)
bot.on_command("crypto", crypto)
bot.start()
🧠 Що ти зараз навчився
✔ працювати з кількома API
✔ обробляти JSON
✔ робити перевірку помилок
✔ будувати просту backend-логіку
✔ комбінувати дані
🧪 Завдання
✍️ Додай Litecoin
✍️ Додай Monero
✍️ Виведи тільки топ 3 монети
✍️ Зміни валюту на EUR