maxbot-api-client-go — это библиотека для интеграции с API MAX Bot. Этот проект предоставляет структурированный интерфейс для взаимодействия с конфигурациями бота, управления сообщениями, отправки медиафайлов и подписки на события через long-polling.
Для использования библиотеки потребуется получить токен бота в консоли разработчика MAX API.
Документацию по REST API MAX можно найти по ссылке [https://dev.max.ru/docs-api]. Библиотека является оберткой для REST API, поэтому документация по указанной выше ссылке также применима к используемым здесь моделям и параметрам запроса.
Убедитесь, что у вас установлена версия Go не ниже 1.20
go versionСоздайте Go модуль, если он не создан:
go mod init ModuleName
Установите библиотеку:
go get github.com/green-api/maxbot-api-client-goИмпорт:
import(
"github.com/green-api/maxbot-api-client-go"
)Как инициализировать клиент:
bot, err := api.New(client.Config{
BaseURL: "https://platform-api.max.ru",
Token: "YOUR_BOT_TOKEN",
})
if err != nil {
log.Fatal().Err(err).Msg("failed to init MAX API")
}Как получить информацию о боте:
Ссылка на пример: GetBot/main.go
response, err := bot.Bots.GetBot(context.Background())Как отправить сообщение:
Ссылка на пример: SendMessage/main.go
response, err := bot.Messages.SendMessage(context.Background(), models.SendMessageReq{
UserID: 1234567890,
Text: "Hello world!",
})Как легко отправить файл (по ссылке или локальный):
Ссылка на пример: SendFile/main.go
response, err := bot.Helpers.SendFile(context.Background(), models.SendFileReq{
ChatID: exampleChatID,
FileSource: "cmd/examples/assets/file.txt",
})response, err := bot.Helpers.SendFile(context.Background(), models.SendFileReq{
ChatID: exampleChatID,
FileSource: "https://storage.yandexcloud.net/sw-prod-03-test/ChatBot/corgi.jpg",
})Как вручную загрузить файл (для кастомных вложений):
Ссылка на пример: UploadFile/main.go
response, err := bot.Uploads.UploadFile(context.Background(), models.UploadFileReq{
Type: models.UploadImage,
FilePath: "/path/to/your/image.png",
})Как получить входящее уведомление:
Ссылка на пример: GetUpdates/main.go
response, err := bot.Subscriptions.GetUpdates(context.Background())| Описание | Ссылка на пример |
|---|---|
| Как отправить сообщение | SendMessage/main.go |
| Как получить информацию о боте | GetBot/main.go |
| Как отправить файл | SendFile/main.go |
| Как загрузить файл | UploadFile/main.go |
| Как получить входящее уведомление | GetUpdates/main.go |
| Метод API | Описание | Ссылка на документацию MAX | Ссылка на документацию библиотеки |
|---|---|---|---|
Bots.GetBot |
Получает информацию о боте | GetBot | GetBot |
Bots.PatchBot |
Изменяет информацию о боте | PatchBot | |
Chats.GetChats |
Возвращает список групповых чатов, в которых участвовал бот | GetChats | GetChats |
Chats.GetChat |
Возвращает информацию о групповом чате по его ID | GetChat | GetChat |
Chats.EditChat |
Позволяет редактировать информацию о групповом чате | EditChat | EditChat |
Chats.DeleteChat |
Удаляет групповой чат для всех участников | DeleteChat | DeleteChat |
Chats.SendAction |
Позволяет отправлять следующие действия бота в групповой чат | SendAction | SendAction |
Chats.GetPinnedMessage |
Возвращает закрепленное сообщение в чате | GetPinnedMessage | GetPinnedMessage |
Chats.PinMessage |
Закрепляет сообщение в групповом чате | PinMessage | PinMessage |
Chats.UnpinMessage |
Удаляет закрепленное сообщение в групповом чате | UnpinMessage | UnpinMessage |
Chats.GetChatMembership |
Возвращает членство бота в групповом чате | GetChatMembership | GetChatMembership |
Chats.LeaveChat |
Удаляет бота из группового чата | LeaveChat | LeaveChat |
Chats.GetChatAdmins |
Возвращает список всех администраторов группового чата | GetChatAdmins | GetChatAdmins |
Chats.SetChatAdmins |
Назначает участника группы администратором | SetChatAdmins | SetChatAdmins |
Chats.DeleteAdmin |
Отменяет права администратора пользователя в групповом чате | DeleteAdmin | DeleteAdmin |
Chats.GetChatMembers |
Возвращает список участников группового чата | GetChatMembers | GetChatMembers |
Chats.AddMembers |
Добавляет участников в групповой чат | AddMembers | AddMembers |
Chats.DeleteMember |
Удаляет участника из группового чата | DeleteMember | DeleteMember |
Subscriptions.GetSubscriptions |
Возвращает список подписок на уведомления веб-хуков | GetSubscriptions | GetSubscriptions |
Subscriptions.Subscribe |
Настраивает доставку событий бота через веб-хук | Subscribe | Subscribe |
Subscriptions.Unsubscribe |
Отменяет подписку бота на получение обновлений через веб-хук | Unsubscribe | Unsubscribe |
Subscriptions.GetUpdates |
Получает входящие обновления | GetUpdates | GetUpdates |
Upload.UploadFile |
Загружает файл на серверы MAX для последующей передачи | UploadFile | UploadFile |
Helpers.SendFile |
Упрощает отправку файлов, автоматически определяя URL или путь | SendFile | |
Messages.GetMessages |
Возвращает информацию о сообщении или массив сообщений из чата | GetMessages | GetMessages |
Messages.SendMessage |
Отправляет текстовое или медиа-сообщение указанному пользователю или в чат | SendMessage | SendMessage |
Messages.EditMessage |
Редактирует текст или медиафайл ранее отправленного сообщения | EditMessage | EditMessage |
Messages.DeleteMessage |
Удаляет сообщение из чата | DeleteMessage | DeleteMessage |
Messages.GetMessage |
Извлекает содержимое и метаданные конкретного сообщения по его ID | GetMessage | GetMessage |
Messages.GetVideoInfo |
Возвращает подробную информацию о прикрепленном видео | GetVideoInfo | GetVideoInfo |
Messages.AnswerCallback |
Отправляет ответ после того, как пользователь нажмет кнопку | AnswerCallback | AnswerCallback |