Документация к REST API находится по ссылке. Библиотека является оберткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.
Чтобы отправить сообщение или выполнить другие методы GREEN API, аккаунт MAX в приложении телефона должен быть в авторизованном состоянии. Для авторизации аккаунта перейдите в личный кабинет и сканируйте QR-код с использованием приложения MAX.
Убедитесь, что у вас установлена версия 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: "mail@email.com", // поле 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 |