Обложка канала

Умный программист: it, программирование, hi-tech

Легендарный Гарвардский курс по основам программирования в закрепе канала! Поможем научиться программировать бесплатно

Умный программист: it, программирование, hi-tech

5 лет назад
Открыть в
Как создать простой 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