Документация к 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: "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 |