Полное руководство о том, как создать бота Telegram с помощью библиотеки telebot с использованием Python.

уровень: легкий | язык: питон | технический стек: телебот

Очень быстрые ответы на вопросы «почему».

  • Идея есть, но вы понимаете, что функционал будет маловат для приложения? — бот
  • Вам нужно быстро сделать прототип? — бот
  • Хотите сделать что-то маленькое для повседневных нужд на питоне? — бот

Итак, всем привет, я здесь новенький и задался целью восполнить недостаток информации, которую искал здесь, но не нашел. Сегодня мы рассмотрим создание телеграм-бота с помощью библиотеки telebot.

Во-первых, вам нужно получить токен от бота: @BotFather. После этого следует установить библиотеку.

pip install pyTelegramBotAPI

И так. Приступаем к кодированию. Во-первых, нам нужно ответить на команду запуска бота.

Попробуем написать игру-бота для угадывания чисел от 0 до 5. Начнем с обработки приветствия и отображения кнопки «Играть» после приветствия. Давайте познакомимся с командой register_next_step_handler для перехода к новому «шагу». Также познакомимся с разметкой клавиатуры, что упростит работу с ботом для наших пользователей.

Во-первых, нам нужно определить, что у нас должно быть в коде. Совершенно банальная подсказка, но если вы начинающий программист, или вам сложно ориентироваться в огромном количестве стоящих задач, то рисуйте схемы.

Сохраняйте весь код сразу с комментариями. Более подробное описание кода следует за сутью.

Напишем текст о нашем боте в отдельную переменную для вывода пользователю.

В нашей первоначальной функции send_hello мы создаем клавиатуру и наполняем ее кнопками «Play» и «About» в строках 25–27. Получаем сообщение от пользователя, которое он напишет, нажав на наши кнопки. Это делается просто путем присвоения значения из функции bot.reply_to переменной сообщения. В той же функции мы передаем нашу разметку клавиатуры в answer_markup.

Затем в строке 32 мы устанавливаем следующий обработчик play_or_about и передаем ему наше сообщение от пользователя.

В функции play_or_about мы делаем простое разделение с помощью условных конструкций. Если функция получает «Играть» или «Еще одна попытка» (которую мы отправим дальше, если пользователь захочет еще раз попытать счастья), мы генерируем случайное число и просим пользователя угадать его.

Если пользователь хочет узнать о боте, мы выводим информацию о нем и снова спрашиваем, что он хочет сделать, затем зацикливаем обработчик play_or_about.

Иногда пользователи решают не использовать клавиатуру и пытаются набирать собственные сообщения, на которые мы не знаем, как реагировать. Мы отвечаем, что не знаем, что делать, и предлагаем ему снова воспользоваться нашими кнопками. Снова возвращаем его ответ тому же обработчику play_or_about.

Мы определяем, выиграл или проиграл наш пользователь с помощью простых условных конструкций. Предложите пользователю попробовать сыграть еще раз или отобразить информацию о боте. Мы передаем его ответ в функцию play_or_about, поэтому нам не нужно писать новые обработчики.

Заключение

Что ж, предлагаю подвести итог. Сегодня мы разобрали библиотеку телеботов на предельно простом уровне.

Предлагаю рассмотреть его подробнее, изучив его документацию.
Возможности этой библиотеки позволяют быстро разрабатывать ботов для телеграмм под свои повседневные задачи, работу с клиентами и т.д.

Немного об авторе

Я только начинаю свой путь писателя на этом сайте и постараюсь придерживаться графика: 1 неделя = 1 статья, за исключением случаев, когда работа предполагает подробное, исчерпывающее описание. Основное направление будет Data Science, так как это моя основная профессия. Эта статья была «разогревающей» статьей :)

Буду рад критике и советам. Оставайтесь на связи и подписывайтесь, чтобы ничего не пропустить!

LinkedIn и Среда.

Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.