Чтобы зарегистрировать URL https://max.aegisone.ru/webhook в качестве вебхука на платформе MAX, необходимо отправить POST-запрос на метод /subscriptions через API. Для этого потребуется токен бота, сам URL и, опционально, дополнительные параметры — типы событий и секретный ключ для проверки подписи. Требования к URL вебхука Протокол: только HTTPS. HTTP не поддерживается. Порт: только 443. Порт в URL не указывается. Сертификат: должен быть выдан доверенным центром сертификации. Самоподписанные сертификаты не поддерживаются. Доменное имя в URL должно совпадать с CN (Common Name) или SAN (Subject Alternative Name) сертификата. Сервер должен предоставлять полную цепочку сертификатов. Параметры запроса При отправке POST-запроса на /subscriptions укажите следующие параметры в теле запроса: url (обязательный) — HTTPS-адрес вашего endpoint, например https://max.aegisone.ru/webhook. update_types (необязательный) — массив типов событий, которые хочет получать бот. Полный список типов событий можно найти в документации MAX. maxo.readthedocs.io +1 secret (необязательный) — строка от 5 до 256 символов, состоящая из букв (A-Z, a-z), цифр (0-9) и дефиса. Если указать этот параметр, MAX будет добавлять его в заголовок X-Max-Bot-Api-Secret каждого callback-запроса. На сервере можно проверять это значение для верификации запросов. Пример запроса bash curl -X POST "https://platform-api.max.ru/subscriptions" \ -H "Authorization: YOUR_BOT_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "url": "https://max.aegisone.ru/webhook", "update_types": ["message_created", "bot_started"], "secret": "your_secret_key" }' В заголовке Authorization передаётся токен бота без префикса Bearer. Дополнительные сведения После успешной регистрации вебхука MAX будет отправлять HTTPS POST-запросы на указанный URL при наступлении выбранных событий. Вебхук-эндпоинт должен возвращать HTTP 200 в течение 30 секунд. Любой другой код ответа или превышение тайм-аута считается ошибкой доставки. Если доставка не удалась, MAX выполняет до 10 повторных попыток с экспоненциально растущим интервалом. Если в течение 8 часов не получен успешный ответ, бот автоматически отписывается от вебхука. Одновременно можно использовать только один механизм доставки событий: либо вебхук, либо long polling. При регистрации вебхука long polling автоматически отключается. Проверка подписки Чтобы убедиться, что подписка прошла успешно, можно отправить GET-запрос на /subscriptions с токеном бота в заголовке. В ответе следует проверить, что указанный URL и параметры (если они задавались) соответствуют ожидаемым. Если при регистрации возникает ошибка, стоит проверить корректность токена, JSON-запроса и соответствие URL требованиям (HTTPS на порту 443).