Если вы уже используете бота в Телеграме, внимание на Max просто невозможно не обратить — его аудитория стремительно растет. Я, заметив это, решил создать Go-клиент, но столкнулся с рядом трудностей. Официальный клиент хоть и поддерживается, но его функционала оказалось недостаточно. С первой же задачей — отправка сообщения с инлайн-кнопками — возникла проблема: кнопки пропадали после редактирования сообщения. Оказалось, что пустой слайс Attachments отправляется в каждом запросе, что приводит к удалению всех вложений. После этого стало очевидно, что придется писать собственный клиент.
Сгенерировав типы из OpenAPI-спецификации, я обнаружил отсутствие некоторых необходимых компонентов, что вынудило меня вручную проверить документацию. В итоге я создал клиент с минимальными зависимостями и учел важные аспекты, такие как обработка ошибок и тестируемость. Теперь отправка сообщений с кнопками, загрузка медиа и обработка callback-ов реализованы успешно.
Проект уже доступен на GitHub, и я надеюсь получить обратную связь от сообщества. Кроме того, готовый фреймворк с роутером и middleware, как я изначально планировал, теперь тоже доступен.