Документация к REST API находится по ссылке. Библиотека является оберткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.
Чтобы отправить сообщение или выполнить другие методы GREEN API, аккаунт MAX в приложении телефона должен быть в авторизованном состоянии. Для авторизации аккаунта перейдите в личный кабинет, запросите SMS код. Введите SMS код, после чего инстанс будет авторизован.
Убедитесь, что у вас установлена версия Go не ниже 1.22
go versionСоздайте Go модуль, если он не создан:
go mod init ModuleNameУстановите библиотеку:
go get github.com/green-api/max-api-client-golangИмпорт:
import (
greenapi "github.com/green-api/max-api-client-golang"
)Как инициализировать объект:
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
Как отправить сообщение:
Ссылка на пример: sendMessage/main.go
response, _ := GreenAPI.Sending().SendMessage(
"10000000",
"Hello",
)Как создать группу:
Ссылка на пример: createGroup/main.go
response, _ := GreenAPI.Groups().CreateGroup(
"Group Title",
[]string{
"10000000",
"10000001",
},
)Как отправить файл с диска:
Ссылка на пример: sendFileByUpload/main.go
response, _ := GreenAPI.Sending().SendFileByUpload(
"10000000",
"C:/Users/user/Desktop/Pictures/image.png",
"image.png",
)Как отправить файл по ссылке:
Ссылка на пример: sendFileByUrl/main.go
response, _ := GreenAPI.Sending().SendFileByUrl(
"10000000",
"urlFile",
"fileName",
greenapi.OptionalCaptionSendUrl("Caption"),
)Как получить входящее уведомление:
Ссылка на пример: receiveNotification/main.go
response, _ := GreenAPI.Receiving().ReceiveNotification(
greenapi.OptionalReceiveTimeout(5),
)Чтобы использовать методы партнёра, вы должны инициализировать другой объект:
Partner := greenapi.GreenAPIPartner{
PartnerToken: "gac.1234567891234567891234567891213456789",
Email: "[email protected]", // поле email не обязательно
}Теперь вы можете использовать методы партнёра так же, как и обычные методы, но через объект "Partner":
Как получить все инстансы на аккаунте:
Ссылка на пример: partnerMethods/getInstances/main.go
response, _ := Partner.Partner().GetInstances()Как создать инстанс:
Ссылка на пример: partnerMethods/createInstance/main.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
response, _ := Partner.Partner().DeleteInstanceAccount(3100000000)Обратите внимание, что методы могут иметь необязательные параметры, которые вы можете передавать. Необязательные параметры передаются в аргументы методов в виде функций и имеют следующий формат:
greenapi.Optional + name of parameterК примеру в методе SetSettings все параметры являются опциональными. Рассмотрим пример вызова данной функции::
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:
response, _ := GreenAPI.Sending().SendMessage(
"10000000",
"Hello",
greenapi.OptionalQuotedMessageId("2712345112345"), // цитирует указанное сообщение
)| Описание | Ссылка на пример |
|---|---|
| Как отправить сообщение | sendMessage/main.go |
| Как отправить файл с диска | sendFileByUpload/main.go |
| Как отправить файл по ссылке | sendFileByUrl/main.go |
| Как выгрузить файл в облачное хранилище | uploadFile/main.go |
| Как отправить опрос | sendPoll/main.go |
| Как проверить номер телефона на наличие аккаунта MAX | CheckAccount/main.go |
| Как установить настройки инстанса | setSettings/main.go |
| Как создать группу | createGroup/main.go |
| Как отправить текстовый статус | sendTextStatus/main.go |
| Как получить входящее уведомление | receiveNotification/main.go |
| Как получить все инстансы на аккаунте | partnerMethods/getInstances/main.go |
| Как создать инстанс | partnerMethods/createInstance/main.go |
| Как удалить инстанс | partnerMethods/deleteInstanceAccount/main.go |
| API метод | Описание | Ссылка на документацию |
|---|---|---|
Account().GetSettings |
Метод предназначен для получения текущих настроек аккаунта | GetSettings |
Account().GetAccountSettings |
Метод предназначен для получения информации о аккаунте MAX | GetSettings |
Account().SetSettings |
Метод предназначен для установки настроек аккаунта | SetSettings |
Account().GetStateInstance |
Метод предназначен для получения состояния аккаунта | GetStateInstance |
Account().Reboot |
Метод предназначен для перезапуска аккаунта | Reboot |
Account().Logout |
Метод предназначен для деавторизации аккаунта | Logout |
Account().SetProfilePicture |
Метод предназначен для установки аватара аккаунта | SetProfilePicture |
Account().StartAuthorization |
Метод предназначен для авторизации инстанса. Процесс авторизации заключается в подключении к шлюзу GREEN-API существующего аккаунта мессенджера MAX | StartAuthorization |
Account().SendAuthorizationCode |
Метод предназначен для завершения процесса авторизации инстанса. Используйте код проверки полученный из SMS при вызове метода | SendAuthorizationCode |
Groups().CreateGroup |
Метод предназначен для создания группового чата | CreateGroup |
Groups().UpdateGroupName |
Метод изменяет наименование группового чата | UpdateGroupName |
Groups().GetGroupData |
Метод получает данные группового чата | GetGroupData |
Groups().AddGroupParticipant |
Метод добавляет участника в групповой чат | AddGroupParticipant |
Groups().RemoveGroupParticipant |
Метод удаляет участника из группового чата | RemoveGroupParticipant |
Groups().SetGroupAdmin |
Метод назначает участника группового чата администратором | SetGroupAdmin |
Groups().RemoveAdmin |
Метод лишает участника прав администрирования группового чата | RemoveAdmin |
Groups().SetGroupPicture |
Метод устанавливает аватар группы | SetGroupPicture |
Groups().LeaveGroup |
Метод производит выход пользователя текущего аккаунта из группового чата | LeaveGroup |
Journals().GetChatHistory |
Метод возвращает историю сообщений чата | GetChatHistory |
Journals().GetMessage |
Метод возвращает сообщение чата | GetMessage |
Journals().LastIncomingMessages |
Метод возвращает крайние входящие сообщения аккаунта | LastIncomingMessages |
Journals().LastOutgoingMessages |
Метод возвращает крайние отправленные сообщения аккаунта | LastOutgoingMessages |
Queues().ShowMessagesQueue |
Метод предназначен для получения списка сообщений, находящихся в очереди на отправку | ShowMessagesQueue |
Queues().ClearMessagesQueue |
Метод предназначен для очистки очереди сообщений на отправку | ClearMessagesQueue |
ReadMark().ReadChat |
Метод предназначен для отметки сообщений в чате прочитанными | ReadChat |
Receiving().ReceiveNotification |
Метод предназначен для получения одного входящего уведомления из очереди уведомлений | ReceiveNotification |
Receiving().DeleteNotification |
Метод предназначен для удаления входящего уведомления из очереди уведомлений | DeleteNotification |
Receiving().DownloadFile |
Метод предназначен для скачивания принятых и отправленных файлов | DownloadFile |
Sending().SendMessage |
Метод предназначен для отправки текстового сообщения в личный или групповой чат | SendMessage |
Sending().SendFileByUpload |
Метод предназначен для отправки файла, загружаемого через форму (form-data) | SendFileByUpload |
Sending().SendFileByUrl |
Метод предназначен для отправки файла, загружаемого по ссылке | SendFileByUrl |
Sending().UploadFile |
Метод предназначен для загрузки файла в облачное хранилище, который можно отправить методом sendFileByUrl | UploadFile |
Service().CheckAccount |
Метод проверяет наличие аккаунта MAX на номере телефона | CheckAccount |
Service().GetAvatar |
Метод возвращает аватар корреспондента или группового чата | GetAvatar |
Service().GetContacts |
Метод предназначен для получения списка контактов текущего аккаунта | GetContacts |
Service().GetContactInfo |
Метод предназначен для получения информации о контакте | GetContactInfo |
Partner().GetInstances |
Метод предназначен для получения всех инстансов аккаунтов созданных партнёром. | GetInstances |
Partner().CreateInstance |
Метод предназначен для создания инстанса от имени партнёра. | CreateInstance |
Partner().DeleteInstanceAccount |
Метод предназначен для удаления инстанса аккаунта партнёра. | DeleteInstanceAccount |