Skip to content

Golang MAX библиотека для интеграции с мессенджером MAX через API сервиса green-api.com.

License

Notifications You must be signed in to change notification settings

green-api/max-api-client-golang

Repository files navigation

max-api-client-golang

API

Документация к REST API находится по ссылке. Библиотека является оберткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.

Поддержка

Support Support Support

Руководства и новости

Guides News News

Авторизация

Чтобы отправить сообщение или выполнить другие методы 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

About

Golang MAX библиотека для интеграции с мессенджером MAX через API сервиса green-api.com.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages