Как создать простой echo-бот в telegram
Для примера воспользуемся библиотекой pyTelegramBotAPI для языка Python, которая берет на себя все нюансы отправки и получения запросов, позволяя сконцентрироваться непосредственно на логике. Установка библиотеки предельно простая:
pip install pytelegrambotapi
Далее создайте каталог, а внутри него 2 файла: bot.py и config.py. Рекомендуется выносить различные константы и настройки в файл config.py, дабы не загромождать другие. В файл config.py вписывайте:
# Токен ненастоящий. Подставьте свой
token = '1234567890:AAE_abCDEFghijKLmNOpqRsTuVWxyz'
Теперь надо научить бота реагировать на сообщения. Напишем обработчик в bot.py, который будет реагировать на все текстовые сообщения.
@bot.message_handler(content_types=["text"])
def repeat_all_messages(message): # Название функции не играет никакой роли
bot.send_message(message.chat.id, message.text)
Далее запустим бесконечный цикл получения новых записей со стороны Telegram:
if name == 'main':
bot.infinity_polling()
Функция infinity_polling запускает т.н. Long Polling, бот должен стараться не прекращать работу при возникновении каких-либо ошибок. При этом, само собой, за ботом нужно следить, ибо сервера Telegram периодически перестают отвечать на запросы или делают это с большой задержкой приводя к ошибкам 5xx)
Итак, полный код файла bot.py выглядит следующим образом:
import config
import telebot
bot = telebot.TeleBot(config.token)
@bot.message_handler(content_types=["text"])
def repeat_all_messages(message): # Название функции не играет никакой роли
bot.send_message(message.chat.id, message.text)
if name == 'main':
bot.infinity_polling()
Осталось запустить бота: python3 bot.py