Search by

skeeks / cms-communication-max

skeeks-semenov

MAX messenger bot driver for skeeks/cms-communication

Package info

github.com/skeeks-cms/cms-communication-max

Homepage

Issues

Wiki

Type:yii2-extension

pkg:composer/skeeks/cms-communication-max

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

1.0.0 2026-10-24 18:30 UTC

This package is auto-updated.

Last update: 2026-10-24 18:32:23 UTC


README

Драйвер мессенджера MAX для skeeks/cms-communication: клиенты пишут боту или в рабочий чат, где состоит бот, переписка приходит в CRM, менеджер отвечает из CRM. Всё общее (приём, порядок, переписки, собеседники, файлы, права, отправка) — в cms-communication (README, раздел «Боты мессенджеров»); здесь только протокол MAX Bot API (https://dev.max.ru/docs-api, сверено со схемой github.com/max-messenger/api-schema 0.0.33).

Установка

composer require skeeks/cms-communication-max

Пакет сам регистрирует драйвер max (components.communication.drivers). Бота создаёт организация, ИП или самозанятый на business.max.ru (Чат-боты → Интеграция → токен; модерация до 48 часов, не больше 5 ботов у организации). Чтобы бот видел сообщения группы, его нужно сделать администратором с правом «Читать все сообщения» (read_all_messages).

Что умеет

  • Приём через вебхук (POST /subscriptions с секретом, заголовок X-Max-Bot-Api-Secret) или опросом (GET /updates с marker). Подписка — на сообщения, правки, удаления, нажатия кнопок, запуск и остановку бота, добавление и удаление бота и участников, смену названия чата и прав бота. Другие подписки бота удаляются: получатель один.
  • Ключ события (у MAX нет номера события): тип + mid, для правок ещё время, для кнопок callback_id, для остальных — чат, человек и время.
  • Разбор: личные диалоги, группы, каналы; ответ на сообщение, пересылка (текст и автор), файлы и картинки по ссылке, видео по ключу (GET /videos/{token}), аудио с расшифровкой, стикер и геопозиция текстом; контакт засчитывается своим, только если max_info — сам отправитель и hash совпадает с HMAC-SHA256 от токена.
  • Название группы — GET /chats/{id} при первом сообщении (в сообщениях его нет). История чата — MaxDriver::history() (GET /messages, до 100 за раз).
  • Отправка: текст до 4000 знаков (длиннее — частями), оформление HTML (b, i, u, s, a, code, pre), ответ на сообщение, кнопки-ссылки и кнопки-действия, файл (загрузка POST /uploads, повтор при attachment.not.ready); не больше 2 сообщений в секунду в один чат.
  • Ошибки: 429 — ждать (retryAfter), 403 — бот заблокирован или нет прав, другие 4xx — отказ, 5xx и сеть — исход неизвестен (повторно не отправляется).
  • Ссылка https://max.ru/<имя бота>?start=<ключ> (ключ до 128 знаков).

Адрес API

По умолчанию https://botapi.max.ru. Адрес из документации https://platform-api2.max.ru использует сертификат российского УЦ (Минцифры): без этого корневого сертификата на сервере PHP не устанавливает соединение (проверено 24.10.2026). Адрес и прокси — настройки бота.

Тесты

  • php tests/max.php — разбор и запросы на записанном транспорте, без сети.
  • MAX_LIVE_READ=1 MAX_BOT_TOKEN=… MAX_CHAT_ID=… php tests/max-live-read.php на локальном сайте — только чтение настоящего API (/me, /subscriptions, /chats/{id}, /messages), история в базу с откатом. Не подписывает, не опрашивает /updates и ничего не отправляет.