April 11, 2025

Создание Telegram-бота через BotFather- 2

Отлично! Ниже — готовый Telegram-бот с авто-выдачей архива после оплаты.
Тебе останется просто вставить свой токен и настроить приём платежей.


📂 Что умеет бот:

  • Приветствует пользователя
  • Показывает кнопку "Купить книгу"
  • После нажатия — предлагает оплату (временно эмулируем вручную, без интеграции)
  • После "оплаты" — выдает файл Trading_Bot_Book.zip
  • Пишет в лог, кто и когда получил файл

🛠 Код бота (Python, библиотека python-telegram-bot)

pythonКопироватьРедактироватьimport logging
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import ApplicationBuilder, CommandHandler, CallbackQueryHandler, ContextTypes

# === НАСТРОЙКИ ===
BOT_TOKEN = "ТВОЙ_ТОКЕН_ОТСЮДА_@BotFather"
FILE_PATH = "Trading_Bot_Book.zip"  # Файл должен лежать в той же папке, где запускается бот

# === ЛОГИ ===
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)

# === /start ===
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    keyboard = [
        [InlineKeyboardButton("📘 Купить книгу", callback_data="buy")]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    await update.message.reply_text("Привет! Это бот для покупки книги «Как создать торгового бота».\n\nНажми кнопку ниже, чтобы купить:", reply_markup=reply_markup)

# === Обработка кнопки "Купить" ===
async def handle_button(update: Update, context: ContextTypes.DEFAULT_TYPE):
    query = update.callback_query
    await query.answer()

    # Тут должен быть платёжный API. Пока эмуляция — сразу выдаём файл
    await query.edit_message_text("✅ Оплата успешно принята! Отправляю архив...")

    await context.bot.send_document(chat_id=query.message.chat.id, document=open(FILE_PATH, 'rb'),
                                    caption="📦 Вот ваш файл: «Торговый Бот — Книга».\nСпасибо за покупку!")

    logging.info(f"{query.from_user.username} получил файл")

# === Запуск ===
def main():
    app = ApplicationBuilder().token(BOT_TOKEN).build()
    app.add_handler(CommandHandler("start", start))
    app.add_handler(CallbackQueryHandler(handle_button))
    app.run_polling()

if __name__ == "__main__":
    main()

📦 Подготовка к запуску

1. Установи библиотеки:

bashКопироватьРедактироватьpip install python-telegram-bot==20.0

2. Сохрани файл архива Trading_Bot_Book.zip рядом со скриптом

3. Замени BOT_TOKEN на свой токен

4. Запусти:

bashКопироватьРедактироватьpython bot.py

🚀 Дальнейшие улучшения (по желанию)

Возможность

Как реализовать

💵 Настоящая оплата через Lava или Cryptomus

подключу по API — нужно создать магазин

📊 Сохранение базы покупок

SQLite / Google Sheets / JSON

📩 Поддержка Telegram-чата

добавить кнопку “Задать вопрос”

🌍 Многоязычность

английская версия бота + лендинг


Хочешь — я подключу Lava или Cryptomus для реальной оплаты. Только нужно будет:

  1. Зарегистрироваться там
  2. Скинуть shop_id и API-key (или вставить их сам в код)

Готов перейти к подключению платежей?