Бот MAX: токен, вебхук и подписка на события Перейти к содержимому
+7 (920) 556-26-91 пн–пт: 10:00–19:00 (МСК)
Проконсультироваться Обсудить задачу

Инструкции

Бот MAX: токен, вебхук и получение событий

Техническая настройка бота в MAX: получение токена, проверка доступа, подписка на события через вебхук, требование к сертификатам и разбор кодов ответов.

Бот MAX: токен, вебхук и получение событий

Короткий ответ: бот в MAX работает через HTTPS-запросы к домену platform-api2.max.ru. Токен выдаётся при создании бота на платформе для бизнеса, передаётся в заголовке Authorization и не должен попадать в query-параметры — этот способ передачи больше не поддерживается. События можно получать двумя способами: вебхуком через POST /subscriptions или длинным опросом через GET /updates.

Бизнес-часть — зачем это нужно и какие сценарии окупаются — описана на странице услуги разработки ботов MAX. Ниже техническая настройка: от получения токена до проверки подписки на события.

Шаг 1. Получить токен бота

Токен присваивается при создании бота и доступен в разделе Чат-боты → Настройки на платформе для бизнеса. Если профиль верифицирован и бот создан через мини-приложение «MAX для бизнеса», токен можно получить там же или командой Получить токен у соответствующего бота.

Токен даёт полный доступ к управлению ботом, поэтому хранится в переменных окружения или в менеджере секретов, но не в коде и не в репозитории. При компрометации токен отзывается.

Шаг 2. Проверить доступ

Самый простой способ убедиться, что всё настроено верно, — запросить информацию о боте:

curl -X GET "https://platform-api2.max.ru/me" 
  -H "Authorization: {access_token}"

Успешный ответ содержит идентификатор бота, имя и признак is_bot. Если вместо этого приходит 401 — проблема в токене, если 404 — в адресе.

Шаг 3. Выбрать способ получения событий

Способ Как работает Когда подходит
Вебхук Платформа сама отправляет события на ваш HTTPS-адрес Рабочая нагрузка: мгновенная реакция, не нужно держать постоянное соединение
Длинный опрос Сервер сам запрашивает GET /updates и ждёт появления событий Разработка, отладка, небольшие нагрузки без публичного адреса

Для рабочего бота выбирают вебхук: он не требует постоянно работающего процесса и реагирует сразу. Длинный опрос удобен на этапе отладки, когда публичного HTTPS-адреса ещё нет.

Шаг 4. Подписаться на события

Подписка оформляется методом POST /subscriptions, где указывается адрес обработчика и список типов событий. Управление подписками — это три метода:

Метод Назначение
POST /subscriptions Подписаться на обновления
GET /subscriptions Посмотреть активные подписки
DELETE /subscriptions Отписаться

Проверка подписки через GET — обязательный шаг после настройки. Она показывает, что адрес обработчика принят платформой и события действительно будут приходить.

Шаг 5. Подготовить сервер

Обработчик событий — обычный HTTPS-эндпоинт. На практике это тот же контур, что и для других мессенджеров: домен, сертификат, веб-сервер и приложение. Настройка вебхука на nginx с сертификатом разобрана в материале про вебхук Telegram-бота через nginx и SSL — схема та же, отличается только адрес платформы.

Отдельно стоит учесть требование платформы: запросы направляются на домен platform-api2.max.ru, а в список доверенных сертификатов нужно добавить сертификат Минцифры. Без этого часть запросов из вашего окружения будет завершаться ошибкой проверки сертификата.

Коды ответов и что они значат

Код Причина
200 Запрос выполнен
400 Некорректный запрос: проверьте тело и параметры
401 Ошибка аутентификации: токен отсутствует, отозван или передан не в заголовке
404 Ресурс не найден: чаще всего неверный адрес метода
429 Превышено количество запросов — нужна очередь и повтор с задержкой
503 Сервис недоступен — повторить позже

Код 429 — самый частый источник проблем в ботах, которые рассылают уведомления. Отправка должна идти через очередь с ограничением скорости, а не циклом по списку получателей.

Инструменты разработчика

Платформа публикует спецификацию OpenAPI, из которой генератором кода можно получить готовые модели и функции вызова для нужного языка. Для JavaScript, TypeScript и Golang есть официальные библиотеки — они закрывают типовые операции и избавляют от ручного разбора JSON.

Порядок запуска

  1. Создать бота и сохранить токен вне кода.
  2. Проверить доступ методом GET /me.
  3. Поднять HTTPS-эндпоинт для приёма событий.
  4. Оформить подписку и проверить её методом GET /subscriptions.
  5. Реализовать сценарии: приветствие, меню, квалификация, передача оператору.
  6. Добавить журналирование и обработку 429 через очередь.
  7. Подключить передачу заявок в CRM — это отдельная задача, описанная в разделе интеграции CRM.

Диалоговую логику стоит писать так, чтобы её можно было перенести в другой канал: сценарии, база знаний и правила передачи оператору не зависят от мессенджера. Тогда второй канал — Telegram или VK — обойдётся заметно дешевле первого.