Как создать бота в MAX: путь от идеи до первого ответа в чате
Разбираю по шагам, как зарегистрировать бота в мессенджере MAX, получить токен и заставить его отвечать на сообщения. Опыт практика, без теории ради теории.
Мессенджер MAX активно раскатывают в России, и вместе с ним появилась открытая платформа для ботов. Для меня это просто ещё один канал, куда можно вынести рутину: приём заявок, уведомления из внутренних систем, ответы на однотипные вопросы. Логика здесь знакомая всем, кто хоть раз собирал бота в другом мессенджере.
Сразу оговорюсь: платформа молодая, интерфейсы и документация меняются на ходу. Ниже — путь, которым иду я сам. Точные названия методов и параметров всегда сверяйте с официальной документацией Bot API на dev.max.ru, потому что запоминать их наизусть смысла нет.
Что понадобится перед стартом
- аккаунт в MAX (бот создаётся из-под обычного пользователя);
- понимание, что бот должен делать — хотя бы один сценарий на три реплики;
- место, где будет крутиться код: локальная машина для экспериментов, сервер или любой хостинг для боевого запуска;
- базовое знание любого языка с HTTP-клиентом. Python, JS, PHP — разницы нет, вся работа сводится к запросам.
Про сценарий скажу отдельно. Самая частая ошибка — сначала собрать бота, потом придумать, зачем он. Возьмите живую задачу: «человек пишет боту, отвечает на три вопроса, я получаю заявку в рабочий чат». Этого достаточно для первой версии.
Шаг 1. Регистрация бота
Боты в MAX создаются через служебного бота-мастера. Находите его через поиск по мессенджеру, открываете диалог и идёте по подсказкам. Вас попросят придумать отображаемое имя и короткий адрес — тот самый @никнейм, по которому бота будут искать.
Имя меняется потом спокойно, адрес лучше выбирать сразу с головой. Занятые адреса освобождаются редко, а переезжать на новый — значит потерять все ссылки, которые вы успели расклеить.
Шаг 2. Забрать токен
После создания мастер выдаёт токен доступа — длинную строку, которая и есть пароль вашего бота. Любой, у кого она есть, управляет ботом полностью.
Минимальная гигиена, которую я соблюдаю всегда:
- токен живёт в переменной окружения или в файле, который лежит в
.gitignore; - в коде, скриншотах и статьях он заменяется заглушкой;
- если засветили — отзываете и выпускаете новый через того же бота-мастера.
Проверить, что токен рабочий, можно одним запросом к методу получения информации о боте. Вернулись имя и идентификатор — связь есть, можно идти дальше.
Шаг 3. Оформить карточку
Пока код ещё не написан, займитесь описанием. Аватар, короткое описание, приветственный текст при первом запуске. Это не косметика: человек решает, довериться боту или закрыть чат, в первые пару секунд.
Полезно сразу прописать, что бот умеет и чего не умеет. Фраза вроде «отвечаю на вопросы о доставке, в остальных случаях зову живого человека» снимает половину недопонимания.
Шаг 4. Научить бота отвечать
Тут два способа получать сообщения, и выбрать нужно один.
Long polling. Программа сама регулярно спрашивает сервер: «есть что-нибудь новое?». Подходит для разработки и небольших ботов. Не требует белого IP, домена и сертификата — запускается прямо с ноутбука.
Webhook. Вы регистрируете адрес, и сервер сам присылает события на него. Нужен публичный HTTPS-адрес. Так работают боевые боты: меньше задержка, меньше холостых запросов.
Я начинаю с long polling, потому что цикл «поправил — перезапустил — проверил» занимает секунды. На webhook перевожу, когда бот уже делает что-то полезное и переезжает на сервер.
Первая рабочая версия выглядит примитивно: получить входящее сообщение, достать из него идентификатор чата и текст, отправить ответ обратно методом отправки сообщений. Как только эхо-бот повторяет за вами «привет» — каркас готов, остальное наращивается поверх.
Шаг 5. Кнопки вместо свободного текста
Bot API поддерживает кнопки, прикреплённые к сообщению. Пользуйтесь ими агрессивно. Каждый раз, когда вы просите человека написать что-то текстом, вы получаете двадцать вариантов написания и разбираете их регулярками.
Три кнопки «Заказать», «Статус заказа», «Связаться с менеджером» закрывают больше сценариев, чем любой парсер намерений. Свободный ввод оставляйте там, где иначе никак: имя, адрес, комментарий.
Где обычно спотыкаются
- Не проверяют ответы API. Сервер вернул ошибку, код её проглотил, бот молчит, а вы ищете проблему в логике. Логируйте ответы с самого начала.
- Держат состояние диалога в памяти процесса. После перезапуска все пользователи оказываются в середине несуществующего сценария. Даже SQLite спасает ситуацию.
- Игнорируют повторы. Сеть моргнула, событие пришло дважды, заявка создалась дважды. Запоминайте идентификаторы обработанных сообщений.
- Забывают про тупик. В любом шаге должна быть возможность вернуться в начало и позвать человека.
Что делать дальше
Запустите бота на живых людях как можно раньше — хватит пяти коллег. За час вы узнаете о своём сценарии больше, чем за неделю продумывания веток. Дальше подключайте базу, внешние API, уведомления в рабочий чат.
Главное на старте — довести до конца один маленький сценарий целиком. Работающий бот из тридцати строк приносит пользу уже сегодня, а грандиозная схема в голове не приносит ничего.