PD Документация ← На главную

MAX

Отправляйте сообщения контактам в мессенджере MAX (max.ru) через бота вашего приложения. Канал адресный, как e-mail или SMS: сообщение уходит конкретному человеку — тому, кто открыл бота по своей ссылке или написал ему.

Шаг 1 — Создайте бота

  1. Откройте MAX и найдите @MasterBot
  2. Создайте бота: имя, которое увидят люди, и username (например, myapp_bot)
  3. MasterBot выдаст токен бота — держите его в секрете, он даёт полный доступ к боту

Шаг 2 — Добавьте канал

Каналы → Новый канал → MAX, вставьте токен, нажмите «Проверить связь» и сохраните. При сохранении PushData проверяет токен (GET /me), запоминает username бота и подписывает бота на свой вебхук (POST /subscriptions, события bot_started, bot_stopped, message_created, с секретом). Если у бота уже есть свой вебхук, он остаётся — MAX держит несколько подписок.

Шаг 3 — Подключите контакты

У каждого контакта есть ссылка MAX (Контакты → контакт → «Ссылка MAX»; в API — поле maxLink):

https://max.ru/myapp_bot?start=<подпись контакта>

Отправьте её человеку любым способом — письмом, в приложении, QR-кодом. Открыв бота и нажав «Начать», он привязывает свой аккаунт MAX к контакту: PushData получает bot_started с подписью контакта и записывает в него maxUserId. Подпись подделать нельзя — привязать чужой контакт к своему MAX не получится.

Ещё два способа:

  • тот, кто просто нашёл бота и написал ему, становится контактом max:<user id> — ему тоже можно отправлять;
  • если ваш бэкенд уже знает MAX user id пользователя, передайте его в контакт: POST /api/v1/contacts с max_user_id (или maxUserId в GraphQL).

Когда человек останавливает бота (bot_stopped), maxUserId у контакта снимается — отправки ему прекращаются, без ошибок доставки. То же происходит, если MAX отвечает на отправку отказом 403 (человек остановил бота, а вебхук об этом не дошёл): адрес снимается после первой неудачной доставки.

Шаг 4 — Отправляйте

Отправка уведомления с типом канала MAX идёт всем контактам с maxUserId (или выбранным); шаг SEND в сценарии — контакту сценария. Текст: заголовок жирным, тело, затем данные строками ключ: значение; лимит MAX — 4000 символов. Ответ API POST /messages?user_id=… даёт mid сообщения — он виден в журнале доставки.

Справочник по полям

ПолеПримерОписание
Токен ботаf7Kj…От @MasterBot; хранится зашифрованно
username ботаmyapp_botЗаполняется автоматически при сохранении; из него строятся ссылки контактов

Ошибки

Текст в журналеЗначение
has no MAX user id / has not connected MAXконтакт не открывал бота — отправьте ему ссылку MAX
MAX API error 401токен бота отозван или неверный — пересохраните канал
MAX API error 403 … deniedчеловек остановил бота или никогда его не открывал; адрес с контакта снят, следующий /start привяжет его снова

Вебхук PushData принимает события только с секретом канала (X-Max-Bot-Api-Secret); чужие запросы отбрасываются. Новые контакты max:<user id> создаются в пределах капа контактов тарифа: при исчерпании бот отвечает, но контакт не заводится.