Недавно делали боевого бота для MAX‑мессенджера на Go и поймали весьма нетривиальную проблему: бот «запущен», токен валидный, GetUpdates крутится, а в интерфейсе MAX сообщения висят непрочитанными, лог пустой, в чат ничего не прилетает. Знакомо? Разберём, что пошло не так и как это починить. Основные симптомы проблемы: В данном случае при попытке покопать в сторону кода не дало результата, т.е. Go тут не виноват. Да и SDK тоже. MAX, как и Telegram, даёт два режима доставки событий: Ключевой момент: для одного и того же бота это взаимоисключающие режимы. Если бот подписан на webhook — события улетают туда, а GET /updates остаётся пустым. В нашем случае на проекте был старый no‑code/сервисный бот, который когда‑то получал апдейты через внешний URL. Подписки на webhook никто не снял — в итоге новый Go‑бот честно крутил GetUpdates, но получать там было просто нечего. У MAX есть REST‑метод GET /subscriptions, который возвращает все активные подписки бота на вебхуки. Пример запроса: curl -X
Как мы оживляли бота для MAX: разбор полётов с webhook, GetUpdates и странным Go‑SDK
20 апреля20 апр
2
3 мин