Как на Python реализовать простой эхо-бот для Telegram, который повторяет все сообщения пользователя?
Создание простого эхо-бота для Telegram на Python — отличная отправная точка для изучения разработки ботов. Для этого используется библиотека python-telegram-bot, которая предоставляет удобный интерфейс для работы с Telegram Bot API.
**Шаг 1: Установка библиотеки**
Установите библиотеку через pip:
pip install python-telegram-bot
**Шаг 2: Получение токена бота**
Перед написанием кода необходимо создать бота через @BotFather в Telegram. Отправьте команду /newbot, следуйте инструкциям и получите уникальный токен вида 123456789:ABCdef…
**Шаг 3: Написание кода эхо-бота**
Вот полный рабочий пример:
python
from telegram import Update
from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
user_message = update.message.text
await update.message.reply_text(user_message)
if __name__ == ‘__main__’:
app = ApplicationBuilder().token(‘ВАШ_ТОКЕН’).build()
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling()
**Разбор кода:**
— `ApplicationBuilder().token(…)` — создаёт приложение бота с вашим токеном.
— `MessageHandler(filters.TEXT & ~filters.COMMAND, echo)` — обработчик, который реагирует на текстовые сообщения, исключая команды (например, /start).
— Функция `echo` получает объект `update`, из которого извлекает текст сообщения и отправляет его обратно пользователю через `reply_text`.
— `run_polling()` — запускает бота в режиме опроса (polling), при котором бот регулярно запрашивает новые обновления у Telegram.
**Шаг 4: Добавление обработчика команды /start**
Для полноценного бота рекомендуется добавить приветственное сообщение:
python
from telegram.ext import CommandHandler
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(‘Привет! Я эхо-бот. Напиши мне что-нибудь!’)
app.add_handler(CommandHandler(‘start’, start))
**Важные замечания:**
1. Никогда не публикуйте токен бота в открытом доступе. Храните его в переменных окружения или файле .env.
2. Для продакшн-среды рекомендуется использовать вебхуки вместо polling.
3. Библиотека python-telegram-bot версии 20+ использует асинхронный подход (async/await), что делает бота более производительным.
Запустите скрипт командой `python bot.py` и напишите своему боту в Telegram — он будет повторять каждое ваше сообщение.
