Работа с библиотекой Golang
MAX предоставляет официальную библиотеку на Go (Golang) — она в открытом доступе на GitHub и даёт идиоматичный интерфейс для работы с Bot API. Если твой бэкенд на Go или ты просто предпочитаешь строгую типизацию и производительность — это твой инструмент.
GitHub: github.com/max-messenger/max-bot-api-client-go
Я сам пишу на Node.js, но если бы выбирал язык для высоконагруженного бота — серьёзно смотрел бы в сторону Go. Гор routinesтины идеально ложатся на модель обработки событий от вебхука: на каждый входящий запрос — легковесная горутина, никакого оверхеда.
Установка
Добавить библиотеку в проект — одна команда:
go get github.com/max-messenger/max-bot-api-client-go
Требуется Go 1.21 или новее. Проверь версию:
go version
Базовое использование
Вот минимальный рабочий пример на Go — бот отвечает «Привет!» на любое сообщение. Код чистый и понятный, без лишней магии:
package main
import (
"log"
"os"
maxbot "github.com/max-messenger/max-bot-api-client-go"
)
func main() {
bot := maxbot.NewBot(os.Getenv("MAX_BOT_TOKEN"))
bot.OnMessage(func(ctx *maxbot.Context) {
ctx.Reply("Привет, " + ctx.From.FirstName + "! 👋")
})
log.Fatal(bot.Start())
}
Библиотека покрывает весь Bot API: отправку сообщений, inline-клавиатуры, загрузку файлов, работу с чатами, обработку колбэков. Всё с родной для Go обработкой ошибок и контекстами.
Рекомендуемая структура проекта
Вот как я организовал бы Go-проект для бота, опираясь на идиомы языка:
my-max-bot/
├── cmd/
│ └── bot/
│ └── main.go ← точка входа
├── internal/
│ ├── handlers/
│ │ ├── commands.go ← обработка команд
│ │ ├── messages.go ← обработка сообщений
│ │ └── callbacks.go ← обработка колбэков
│ ├── keyboards/
│ │ └── keyboards.go ← все клавиатуры
│ ├── services/
│ │ ├── api.go ← внешние API
│ │ └── db.go ← база данных
│ └── config/
│ └── config.go ← конфигурация
├── go.mod
├── go.sum
└── .env
Пакет internal не даст случайно
импортировать внутренние модули снаружи — чистая
архитектура из коробки.
Документация и примеры
Полную документацию по библиотеке смотри на GitHub — там все методы, структуры и примеры использования. Также загляни на страницу Примеры создания ботов — там есть рабочие примеры с Go-библиотекой.
Если предпочитаешь Node.js — у MAX есть библиотека для JavaScript.