https://github.com/green-api/max-api-client-golang
Golang MAX библиотека для интеграции с мессенджером MAX через API сервиса green-api.com.
https://github.com/green-api/max-api-client-golang
max max-api max-api-golang max-bot max-chat max-chatbot max-chatbot-golang max-golang
Last synced: 2 months ago
JSON representation
Golang MAX библиотека для интеграции с мессенджером MAX через API сервиса green-api.com.
- Host: GitHub
- URL: https://github.com/green-api/max-api-client-golang
- Owner: green-api
- License: other
- Created: 2025-09-08T11:14:31.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-12-23T07:15:52.000Z (3 months ago)
- Last Synced: 2025-12-24T21:54:38.455Z (3 months ago)
- Topics: max, max-api, max-api-golang, max-bot, max-chat, max-chatbot, max-chatbot-golang, max-golang
- Language: Go
- Homepage: https://green-api.com/max
- Size: 93.8 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# max-api-client-golang
- [Documentation in English](docs/README_EN.md).
## API
Документация к REST API находится по [ссылке](https://green-api.com/v3/docs/api). Библиотека является оберткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.
## Поддержка
[](mailto:support@greenapi.com)
[](https://t.me/greenapi_support_eng_bot)
[](https://wa.me/77273122366)
## Руководства и новости
[](https://www.youtube.com/@greenapi-en)
[](https://t.me/green_api)
[](https://whatsapp.com/channel/0029VaLj6J4LNSa2B5Jx6s3h)
## Авторизация
Чтобы отправить сообщение или выполнить другие методы GREEN API, аккаунт MAX в приложении телефона должен быть в авторизованном состоянии. Для авторизации аккаунта перейдите в [личный кабинет](https://console.green-api.com/), запросите SMS код. Введите SMS код, после чего инстанс будет авторизован.
## Установка
**Убедитесь, что у вас установлена версия Go не ниже 1.22**
```shell
go version
```
**Создайте Go модуль, если он не создан:**
```shell
go mod init ModuleName
```
**Установите библиотеку:**
```shell
go get github.com/green-api/max-api-client-golang
```
**Импорт:**
```go
import (
greenapi "github.com/green-api/max-api-client-golang"
)
```
## Использование и примеры
**Как инициализировать объект:**
```go
GreenAPI := greenapi.GreenAPI{
APIURL: "https://api.green-api.com/v3",
MediaURL: "https://api.green-api.com/v3",
IDInstance: "3100000001",
APITokenInstance: "d75b3a66374942c5b3c019c698abc2067e151558acbd412345",
}
```
Все методы библиотеки возвращают два объекта: `*APIResponse` и `error`.
Вы можете посмотреть формат `APIResponse` в [types.go](types.go)
**Как отправить сообщение:**
Ссылка на пример: [sendMessage/main.go](/examples/sendMessage/main.go)
```go
response, _ := GreenAPI.Sending().SendMessage(
"10000000",
"Hello",
)
```
**Как создать группу:**
Ссылка на пример: [createGroup/main.go](/examples/createGroup/main.go)
```go
response, _ := GreenAPI.Groups().CreateGroup(
"Group Title",
[]string{
"10000000",
"10000001",
},
)
```
**Как отправить файл с диска:**
Ссылка на пример: [sendFileByUpload/main.go](/examples/sendFileByUpload/main.go)
```go
response, _ := GreenAPI.Sending().SendFileByUpload(
"10000000",
"C:/Users/user/Desktop/Pictures/image.png",
"image.png",
)
```
**Как отправить файл по ссылке:**
Ссылка на пример: [sendFileByUrl/main.go](/examples/sendFileByUrl/main.go)
```go
response, _ := GreenAPI.Sending().SendFileByUrl(
"10000000",
"urlFile",
"fileName",
greenapi.OptionalCaptionSendUrl("Caption"),
)
```
**Как получить входящее уведомление:**
Ссылка на пример: [receiveNotification/main.go](/examples/receiveNotification/main.go)
```go
response, _ := GreenAPI.Receiving().ReceiveNotification(
greenapi.OptionalReceiveTimeout(5),
)
```
## Методы партнёра
**Чтобы использовать методы партнёра, вы должны инициализировать другой объект:**
```go
Partner := greenapi.GreenAPIPartner{
PartnerToken: "gac.1234567891234567891234567891213456789",
Email: "mail@email.com", // поле email не обязательно
}
```
**Теперь вы можете использовать методы партнёра так же, как и обычные методы, но через объект "Partner":**
**Как получить все инстансы на аккаунте:**
Ссылка на пример: [partnerMethods/getInstances/main.go](/examples/partnerMethods/getInstances/main.go)
```go
response, _ := Partner.Partner().GetInstances()
```
**Как создать инстанс:**
Ссылка на пример: [partnerMethods/createInstance/main.go](/examples/partnerMethods/createInstance/main.go)
```go
response, _ := Partner.Partner().CreateInstance(
greenapi.OptionalName("Created by GO SDK"),
greenapi.OptionalWebhookUrl("https://webhook.url"),
greenapi.OptionalWebhookUrlToken("auth_token"),
greenapi.OptionalDelaySendMessages(5000),
greenapi.OptionalMarkIncomingMessagesRead(true),
greenapi.OptionalMarkIncomingMessagesReadOnReply(true),
greenapi.OptionalOutgoingWebhook(true),
greenapi.OptionalOutgoingMessageWebhook(true),
greenapi.OptionalOutgoingAPIMessageWebhook(true),
greenapi.OptionalStateWebhook(true),
greenapi.OptionalIncomingWebhook(true),
)
```
**Как удалить инстанс:**
Ссылка на пример: [partnerMethods/deleteInstanceAccount/main.go](/examples/partnerMethods/deleteInstanceAccount/main.go)
```go
response, _ := Partner.Partner().DeleteInstanceAccount(3100000000)
```
## Необязательные параметры
**Обратите внимание, что методы могут иметь необязательные параметры, которые вы можете передавать. Необязательные параметры передаются в аргументы методов в виде функций и имеют следующий формат:**
```go
greenapi.Optional + name of parameter
```
**К примеру в методе `SetSettings` все параметры являются опциональными. Рассмотрим пример вызова данной функции::**
```go
response, _ := GreenAPI.Account().SetSettings(
greenapi.OptionalDelaySendMessages(5000),
greenapi.OptionalOutgoingWebhook(true),
greenapi.OptionalIncomingWebhook(true),
// greenapi.OptionalWebhookUrl("webhook_url"),
// greenapi.OptionalWebhookUrlToken("auth_token"),
// greenapi.OptionalMarkIncomingMessagesRead(true),
// greenapi.OptionalMarkIncomingMessagesReadOnReply(true),
// greenapi.OptionalOutgoingMessageWebhook(true),
// greenapi.OptionalOutgoingAPIMessageWebhook(true),
// greenapi.OptionalStateWebhook(true),
)
```
В этом примере только настройки `DelaySendMessages`, `OutgoingWebhook` и `IncomingWebhook` будут изменены, остальные параметры закомментированы, поэтому не будут использованы. Вы можете раскомментировать любой параметр который предпочитаете. **Неиспользованные параметры никак не затронут настройки инстанса**
Ещё один пример использования опциональных параметров, в этот раз рассмотрим метод `sendMessage`:
```go
response, _ := GreenAPI.Sending().SendMessage(
"10000000",
"Hello",
greenapi.OptionalQuotedMessageId("2712345112345"), // цитирует указанное сообщение
)
```
## Список примеров
| Описание | Ссылка на пример |
|-----------------------------------------------|---------------------------------------------------------------|
| Как отправить сообщение | [sendMessage/main.go](/examples/sendMessage/main.go) |
| Как отправить файл с диска | [sendFileByUpload/main.go](/examples/sendFileByUpload/main.go) |
| Как отправить файл по ссылке | [sendFileByUrl/main.go](/examples/sendFileByUrl/main.go) |
| Как выгрузить файл в облачное хранилище | [uploadFile/main.go](/examples/uploadFile/main.go) |
| Как отправить опрос | [sendPoll/main.go](/examples/sendPoll/main.go) |
| Как проверить номер телефона на наличие аккаунта MAX | [CheckAccount/main.go](/examples/CheckAccount/main.go) |
| Как установить настройки инстанса | [setSettings/main.go](/examples/setSettings/main.go) |
| Как создать группу | [createGroup/main.go](/examples/createGroup/main.go) |
| Как отправить текстовый статус | [sendTextStatus/main.go](/examples/sendTextStatus/main.go) |
| Как получить входящее уведомление | [receiveNotification/main.go](/examples/receiveNotification/main.go) |
| Как получить все инстансы на аккаунте | [partnerMethods/getInstances/main.go](/examples/partnerMethods/getInstances/main.go) |
| Как создать инстанс | [partnerMethods/createInstance/main.go](/examples/partnerMethods/createInstance/main.go) |
| Как удалить инстанс | [partnerMethods/deleteInstanceAccount/main.go](/examples/partnerMethods/deleteInstanceAccount/main.go) |
## Список всех методов библиотеки
| API метод | Описание | Ссылка на документацию |
|-----------------------------------|---------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| `Account().GetSettings` | Метод предназначен для получения текущих настроек аккаунта | [GetSettings](https://green-api.com/v3/docs/api/account/GetSettings/) |
| `Account().GetAccountSettings` | Метод предназначен для получения информации о аккаунте MAX | [GetSettings](https://green-api.com/v3/docs/api/account/GetAccountSettings/) |
| `Account().SetSettings` | Метод предназначен для установки настроек аккаунта | [SetSettings](https://green-api.com/v3/docs/api/account/SetSettings/) |
| `Account().GetStateInstance` | Метод предназначен для получения состояния аккаунта | [GetStateInstance](https://green-api.com/v3/docs/api/account/GetStateInstance/) |
| `Account().Reboot` | Метод предназначен для перезапуска аккаунта | [Reboot](https://green-api.com/v3/docs/api/account/Reboot/) |
| `Account().Logout` | Метод предназначен для деавторизации аккаунта | [Logout](https://green-api.com/v3/docs/api/account/Logout/) |
| `Account().Qr` | Метод предназначен для получения QR-кода | [QR](https://green-api.com/v3/docs/api/account/qr/) |
| `Account().SetProfilePicture` | Метод предназначен для установки аватара аккаунта | [SetProfilePicture](https://green-api.com/v3/docs/api/account/SetProfilePicture/) |
| `Groups().CreateGroup` | Метод предназначен для создания группового чата | [CreateGroup](https://green-api.com/v3/docs/api/groups/CreateGroup/) |
| `Groups().UpdateGroupName` | Метод изменяет наименование группового чата | [UpdateGroupName](https://green-api.com/v3/docs/api/groups/UpdateGroupName/) |
| `Groups().GetGroupData` | Метод получает данные группового чата | [GetGroupData](https://green-api.com/v3/docs/api/groups/GetGroupData/) |
| `Groups().AddGroupParticipant` | Метод добавляет участника в групповой чат | [AddGroupParticipant](https://green-api.com/v3/docs/api/groups/AddGroupParticipant/) |
| `Groups().RemoveGroupParticipant` | Метод удаляет участника из группового чата | [RemoveGroupParticipant](https://green-api.com/v3/docs/api/groups/RemoveGroupParticipant/) |
| `Groups().SetGroupAdmin` | Метод назначает участника группового чата администратором | [SetGroupAdmin](https://green-api.com/v3/docs/api/groups/SetGroupAdmin/) |
| `Groups().RemoveAdmin` | Метод лишает участника прав администрирования группового чата | [RemoveAdmin](https://green-api.com/v3/docs/api/groups/RemoveAdmin/) |
| `Groups().SetGroupPicture` | Метод устанавливает аватар группы | [SetGroupPicture](https://green-api.com/v3/docs/api/groups/SetGroupPicture/) |
| `Groups().LeaveGroup` | Метод производит выход пользователя текущего аккаунта из группового чата | [LeaveGroup](https://green-api.com/v3/docs/api/groups/LeaveGroup/) |
| `Journals().GetChatHistory` | Метод возвращает историю сообщений чата | [GetChatHistory](https://green-api.com/v3/docs/api/journals/GetChatHistory/) |
| `Journals().GetMessage` | Метод возвращает сообщение чата | [GetMessage](https://green-api.com/v3/docs/api/journals/GetMessage/) |
| `Journals().LastIncomingMessages` | Метод возвращает крайние входящие сообщения аккаунта | [LastIncomingMessages](https://green-api.com/v3/docs/api/journals/LastIncomingMessages/) |
| `Journals().LastOutgoingMessages` | Метод возвращает крайние отправленные сообщения аккаунта | [LastOutgoingMessages](https://green-api.com/v3/docs/api/journals/LastOutgoingMessages/) |
| `Queues().ShowMessagesQueue` | Метод предназначен для получения списка сообщений, находящихся в очереди на отправку | [ShowMessagesQueue](https://green-api.com/v3/docs/api/queues/ShowMessagesQueue/) |
| `Queues().ClearMessagesQueue` | Метод предназначен для очистки очереди сообщений на отправку | [ClearMessagesQueue](https://green-api.com/v3/docs/api/queues/ClearMessagesQueue/) |
| `ReadMark().ReadChat` | Метод предназначен для отметки сообщений в чате прочитанными | [ReadChat](https://green-api.com/v3/docs/api/marks/ReadChat/) |
| `Receiving().ReceiveNotification` | Метод предназначен для получения одного входящего уведомления из очереди уведомлений | [ReceiveNotification](https://green-api.com/v3/docs/api/receiving/technology-http-api/ReceiveNotification/) |
| `Receiving().DeleteNotification` | Метод предназначен для удаления входящего уведомления из очереди уведомлений | [DeleteNotification](https://green-api.com/v3/docs/api/receiving/technology-http-api/DeleteNotification/) |
| `Receiving().DownloadFile` | Метод предназначен для скачивания принятых и отправленных файлов | [DownloadFile](https://green-api.com/v3/docs/api/receiving/files/DownloadFile/) |
| `Sending().SendMessage` | Метод предназначен для отправки текстового сообщения в личный или групповой чат | [SendMessage](https://green-api.com/v3/docs/api/sending/SendMessage/) |
| `Sending().SendFileByUpload` | Метод предназначен для отправки файла, загружаемого через форму (form-data) | [SendFileByUpload](https://green-api.com/v3/docs/api/sending/SendFileByUpload/) |
| `Sending().SendFileByUrl` | Метод предназначен для отправки файла, загружаемого по ссылке | [SendFileByUrl](https://green-api.com/v3/docs/api/sending/SendFileByUrl/) |
| `Sending().UploadFile` | Метод предназначен для загрузки файла в облачное хранилище, который можно отправить методом sendFileByUrl | [UploadFile](https://green-api.com/v3/docs/api/sending/UploadFile/) |
| `Service().CheckAccount` | Метод проверяет наличие аккаунта MAX на номере телефона | [CheckAccount](https://green-api.com/v3/docs/api/service/CheckAccount/) |
| `Service().GetAvatar` | Метод возвращает аватар корреспондента или группового чата | [GetAvatar](https://green-api.com/v3/docs/api/service/GetAvatar/) |
| `Service().GetContacts` | Метод предназначен для получения списка контактов текущего аккаунта | [GetContacts](https://green-api.com/v3/docs/api/service/GetContacts/) |
| `Service().GetContactInfo` | Метод предназначен для получения информации о контакте | [GetContactInfo](https://green-api.com/v3/docs/api/service/GetContactInfo/) |
| `Partner().GetInstances` | Метод предназначен для получения всех инстансов аккаунтов созданных партнёром. | [GetInstances](https://green-api.com/v3/docs/partners/getInstances/) |
| `Partner().CreateInstance` | Метод предназначен для создания инстанса от имени партнёра. | [CreateInstance](https://green-api.com/v3/docs/partners/createInstance/) |
| `Partner().DeleteInstanceAccount` | Метод предназначен для удаления инстанса аккаунта партнёра. | [DeleteInstanceAccount](https://green-api.com/v3/docs/partners/deleteInstanceAccount/)