Комментарии 8
Статья "причесанная" LLMкой читается плохо из-за своеобразной стилистики, даже если контент хорош.
Ну про токен на странице оф. документации два раза точно написано
https://dev.max.ru/docs-api/methods/GET/me
Не знаю как можно было проглядеть

Со вторым тоже всё нормально в документации. Короче не четыре грабли, а рассказ "как я невнимательно читал документацию".

Справедливо, и не только про токен. Пошёл перепроверять — user_id/chat_id расписаны прямо в параметрах POST /messages, а «исчезновение подписки» вообще документировано: в POST /subscriptions сказано, что бот отписывается сам после 8 часов без успешного ответа от endpoint. У меня это ровно и случилось — backend в тот период пару раз падал в unhealthy, — но строку я тогда не нашёл и гадал. Три из четырёх — «читай доку внимательнее», признаю.
Не в доке осталась одна: MAX не сообщает в payload, какому боту адресован апдейт, и копит подписки, а не заменяет — на этом молчал второй бот в мультиарендности. Плюс инфраструктурное: корень Минцифры в TLS к platform-api2. Статью поправил, спасибо, что ткнули.
Если были такие пробелы с чтением документации, то еще рекомендую обратить внимание на X-Max-Bot-Api-Secret , для вебхухов весьма не лишняя вещь.
Не стоит использовать параметры query string для подобных целей по ряду объективных причин. Могу отдельно развернуть тему, но здесь писать мне позволено не чаще раза в сутки :)
Согласен, уже переписал: секрет теперь задаю в теле подписки (POST /subscriptions), а на приёме сверяю из заголовка X-Max-Bot-Api-Secret — в URL он больше не светится. Query-параметр оставил только фолбэком под ранее зарегистрированные подписки, уберу после их переустановки. Спасибо, что не поленились ткнуть — по делу.

Бот в MAX молчит: четыре грабли Bot API, на которых я потерял неделю