Розробка Telegram-бота для сповіщень про угоди

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Розробка Telegram-бота для сповіщень про угоди
Простий
~2-3 дні
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1285
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1121
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    857

Розробка Telegram-бота для уведомлень про сділки

Трейдер не може 24/7 дивитися на екран. Telegram-бот для уведомлень вирішує це: миттєво сообщає про виконані ордери, досягнення price alert рівнів, зміни балансу та підозріла активність.

Типи уведомлень

Торговельні:

  • Ордер повністю виконаний: ✅ BUY 0.1 BTC @ $42,150 — виконаний
  • Ордер частково виконаний: ⚡ SELL 0.05/0.1 ETH @ $2,205 — частково
  • Ордер скасований: ❌ Ордер #12345 скасований

Цінові алерти:

  • 🔔 BTC/USDT досягнув $45,000 (ваш алерт)

Аккаунт:

  • Виведення підтверджено: 💸 Виведення 500 USDT → 0x...a1b2 підтверджено
  • Новий вхід: 🔐 Новий вхід з IP 1.2.3.4 (Берлін)

Реалізація

from telegram import Bot
from telegram.ext import Application, CommandHandler, CallbackQueryHandler

class TradeNotificationBot:
    def __init__(self, token: str):
        self.bot = Bot(token)
        self.app = Application.builder().token(token).build()
        self._setup_handlers()
    
    def _setup_handlers(self):
        self.app.add_handler(CommandHandler('alerts', self.list_alerts))
        self.app.add_handler(CommandHandler('addalert', self.add_price_alert))
        self.app.add_handler(CallbackQueryHandler(self.handle_callback))
    
    async def notify_fill(self, user_chat_id: int, trade: TradeEvent):
        emoji = '✅' if trade.side == 'buy' else '🔴'
        text = (
            f"{emoji} Ордер виконаний\n"
            f"Пара: {trade.pair}\n"
            f"Сторона: {'Покупка' if trade.side == 'buy' else 'Продаж'}\n"
            f"Обсяг: {trade.quantity} {trade.base_currency}\n"
            f"Ціна: ${trade.price:,.2f}\n"
            f"Сума: ${trade.total:,.2f}\n"
            f"Час: {trade.timestamp.strftime('%H:%M:%S UTC')}"
        )
        await self.bot.send_message(chat_id=user_chat_id, text=text)
    
    async def notify_price_alert(self, user_chat_id: int, alert: PriceAlert):
        direction = '📈' if alert.direction == 'above' else '📉'
        await self.bot.send_message(
            chat_id=user_chat_id,
            text=f"{direction} {alert.pair} досигнув {alert.price}\n"
                 f"Поточна ціна: {alert.current_price}"
        )

Інтеграція з біржевим бэкендом

Уведомлення відправляються через event-driven систему. При кожному fill matching engine публікує подія в Redis Pub/Sub, notification worker підписується та відправляє в Telegram:

import redis.asyncio as aioredis

async def notification_worker():
    r = aioredis.from_url('redis://localhost')
    pubsub = r.pubsub()
    await pubsub.subscribe('trade.fills', 'price.alerts', 'account.events')
    
    async for message in pubsub.listen():
        if message['type'] != 'message':
            continue
        
        event = json.loads(message['data'])
        chat_id = await get_user_chat_id(event['user_id'])
        
        if not chat_id:
            continue  # користувач не прив'язав Telegram
        
        match event['type']:
            case 'fill':
                await notification_bot.notify_fill(chat_id, TradeEvent(**event))
            case 'price_alert':
                await notification_bot.notify_price_alert(chat_id, PriceAlert(**event))

Прив'язка Telegram аккаунту

Користувач прив'язує Telegram через унікальний токен в налаштуваннях біржі:

  1. Біржа генерує одноразовий токен: LINK-a1b2c3d4
  2. Користувач відправляє /link LINK-a1b2c3d4 боту
  3. Бот зберігає (user_id, chat_id) зв'язок
  4. Уведомлення йдуть на цей chat_id

Розробка Telegram-бота для уведомлень з прив'язкою аккаунту та price alerts: 1–2 тижні.