CreatiumMax

Telegram Bots

Начало работы

Чтобы начать, отправьте сообщение @BotFather в Telegram, чтобы зарегистрировать своего бота и получить его токен аутентификации.

Токен вашего бота — это его уникальный идентификатор. Храните его в безопасном месте и делитесь им только с теми, кому нужен прямой доступ к боту.

Создать нового бота можно при помощи команды /newbot
Документация Telegram Bot API - https://core.telegram.org/bots/api

Все запросы к API Telegram Bot производятся на адрес следующего формата:
https://api.telegram.org/bot<ТОКЕН>/<МЕТОД>
Ответ содержит объект JSON, который всегда имеет логическое поле «ok» и может иметь необязательное строковое поле «description» с описанием результата.
Telegram поддерживает HTTP-методы GET и POST.
Тип содержимого может быть как x-www-form-urlencoded так и application/json.

Ограничения API

  • В одном чате не отправляйте более одного сообщения в секунду. Telegram может разрешить кратковременные превышения этого лимита, но в конечном итоге вы начнете получать ошибки 429.

  • В группе боты не могут отправлять более 20 сообщений в минуту.

  • Что касается массовых уведомлений, боты не могут отправлять более 30 сообщений в секунду, если не включено платное увеличение лимита.

Отправка сообщений в чат бота

Для отправки сообщений HTTP запросом в Телеграм используется метод sendMessage.

Обязательные параметры метода sendMessage:

Пример HTTP запроса для отправки сообщения в чат

Обработка команд

Универсальная основа сценария - шаблон запуска бота и обработки входящих команд

В шаблоне необходимо заменить токен, полученный от @BotFather, и ссылку на ваш эндпоинт сценария в последнем действии. Для установки вебхука, необходимо запустить сценарий как минимум один раз (без входящих данных).

После установки вебхука можно отправлять боту команды и обрабатывать их сценарием.

Создание меню команд

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

Меню команд

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

Если пользователь введет / в чате с ботом, ему автоматически предложат установленные команды в выпадающем меню.

Для установки меню команд можно использовать метод set_my_commands

Пример сценария

Клавиатура с кнопками команд

Есть возможность использовать ReplyKeyboardMarkup для создания кнопок команд прямо в чате, которые будут отображаться под строкой ввода сообщения. Это особенно удобно, если вы хотите, чтобы пользователь выбирал из предложенных вариантов, не вводя команды вручную.

При отправке команды /start пользователю предложат эти кнопки под строкой ввода текста.

Пример сценария

Inline-кнопки с callback_data

Этот подход позволяет задать кнопке данные, которые отправляются боту при нажатии на неё, не посылая текст в чат.

Пример сценария

Цепочка вопросов-ответов (квиз)

Для создания цепочки сообщений или квиза в Telegram-боте требуется разработать логику отслеживания состояния диалога с пользователем и отправки соответствующих сообщений в зависимости от его ответов.

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

Было полезно?

Остались вопросы? — Напишите нам в чат поддержки будучи авторизованным в своем аккаунте cremax.ru или через чат поддержки в Телеграме: @CreatiumMaxSupportBot