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