Skip to content

Latest commit

 

History

History
224 lines (176 loc) · 23.8 KB

README_RU.md

File metadata and controls

224 lines (176 loc) · 23.8 KB

whatsapp-api-client-golang

whatsapp-api-client-golang - библиотека для интеграции с мессенджером WhatsApp через API сервиса green-api.com. Чтобы воспользоваться библиотекой, нужно получить регистрационный токен и ID аккаунта в личном кабинете. Есть бесплатный тариф аккаунта разработчика.

API

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

Авторизация

Чтобы отправить сообщение или выполнить другие методы Green API, аккаунт WhatsApp в приложении телефона должен быть в авторизованном состоянии. Для авторизации аккаунта перейдите в личный кабинет и сканируйте QR-код с использованием приложения WhatsApp.

Установка

Не забудьте создать модуль:

go mod init example

Установка:

go get github.com/green-api/whatsapp-api-client-golang

Импорт

import (
	"github.com/green-api/whatsapp-api-client-golang/pkg/api"
)

Примеры

Как инициализировать объект

GreenAPI := api.GreenAPI{
    IDInstance:       "1101000001",
    APITokenInstance: "d75b3a66374942c5b3c019c698abc2067e151558acbd412345",
}

Обратите внимание, что ключи можно получать из переменных среды:

IDInstance := os.Getenv("ID_INSTANCE")
APITokenInstance := os.Getenv("API_TOKEN_INSTANCE")

Как создать группу

Ссылка на пример: createGroup/main.go.

response, _ := GreenAPI.Methods().Groups().CreateGroup("groupName", []string{
    "11001234567@c.us",
    "11002345678@c.us",
})

Как отправить файл загрузкой с диска

Чтобы отправить файл, нужно указать первым параметром путь к нужному документу.

Ссылка на пример: sendFileByUpload/main.go.

response, _ := GreenAPI.Methods().Sending().SendFileByUpload("example.png", map[string]interface{}{
    "chatId": "11001234567@c.us",
})

Как отправить файл по ссылке

Ссылка на пример: sendFileByURL/main.go.

response, _ := GreenAPI.Methods().Sending().SendFileByUrl(map[string]interface{}{
    "chatId":   "11001234567@c.us",
    "urlFile":  "https://go.dev/blog/go-brand/Go-Logo/SVG/Go-Logo_Blue.svg",
    "fileName": "Go-Logo_Blue.svg",
})

Как отправить сообщение

Если у метода API есть необязательные параметры, то в метод библиотеки нужно передавать JSON (map[string]interface{}).

Ссылка на пример: sendMessage/main.go.

response, _ := GreenAPI.Methods().Sending().SendMessage(map[string]interface{}{
    "chatId":  "11001234567@c.us",
    "message": "Any message",
})

Как получать входящие уведомления

Чтобы начать получать уведомления, нужно передать функцию-обработчик в Webhook().Start. Функция-обработчик должна содержать 1 параметр (body map[string]interface{}). При получении нового уведомления ваша функция-обработчик будет выполнена. Чтобы перестать получать уведомления, нужно вызвать функцию Webhook().Stop.

Ссылка на пример: webhook/main.go.

GreenAPIWebhook := GreenAPI.Webhook()

GreenAPIWebhook.Start(func(body map[string]interface{}) {
    fmt.Println(body)
})

Как отправить сообщение с опросом

Если у метода API есть необязательные параметры, то в метод библиотеки нужно передавать JSON (map[string]interface{}).

Ссылка на пример: sendPoll/main.go.

response, err := GreenAPI.Methods().Sending().SendPoll(map[string]interface{}{
	"chatId":  "11001234567@c.us",
	"message": "Please choose a color:",
	"options": []map[string]interface{}{
		{
			"optionName": "Red",
		},
		{
			"optionName": "Green",
		},
		{
			"optionName": "Blue",
		},
	},
})

Список примеров

Описание Ссылка на пример
Как создать группу createGroup/main.go
Как отправить файл загрузкой с диска sendFileByUpload/main.go
Как отправить файл по ссылке sendFileByURL/main.go
Как отправить сообщение sendMessage/main.go
Как получать входящие уведомления webhook/main.go
Как отправить сообщение с опросом sendPoll/main.go

Список всех методов библиотеки

Метод API Описание Documentation link
Account().GetSettings Метод предназначен для получения текущих настроек аккаунта GetSettings
Account().GetWaSettings Метод предназначен для получения информации о аккаунте WhatsApp GetWaSettings
Account().SetSettings Метод предназначен для установки настроек аккаунта SetSettings
Account().GetStateInstance Метод предназначен для получения состояния аккаунта GetStateInstance
Account().GetStatusInstance Метод предназначен для получения состояния сокета соединения инстанса аккаунта с WhatsApp GetStatusInstance
Account().Reboot Метод предназначен для перезапуска аккаунта Reboot
Account().Logout Метод предназначен для разлогинивания аккаунта Logout
Account().QR Метод предназначен для получения QR-кода QR
Account().SetProfilePicture Метод предназначен для установки аватара аккаунта SetProfilePicture
Account().GetAuthorizationCode Метод предназначен для авторизации инстанса по номеру телефона GetAuthorizationCode
Device().GetDeviceInfo Метод предназначен для получения информации об устройстве (телефоне), на котором запущено приложение WhatsApp Business GetDeviceInfo
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().SendButtons Метод предназначен для отправки сообщения с кнопками в личный или групповой чат SendButtons
Sending().SendTemplateButtons Метод предназначен для отправки сообщения с интерактивными кнопками из перечня шаблонов в личный или групповой чат SendTemplateButtons
Sending().SendListMessage Метод предназначен для отправки сообщения с кнопкой выбора из списка значений в личный или групповой чат SendListMessage
Sending().SendFileByUpload Метод предназначен для отправки файла, загружаемого через форму (form-data) SendFileByUpload
Sending().SendFileByUrl Метод предназначен для отправки файла, загружаемого по ссылке SendFileByUrl
Sending().UploadFile Метод предназначен для загрузки файла в облачное хранилище, который можно отправить методом SendFileByUrl UploadFile
Sending().SendLocation Метод предназначен для отправки сообщения геолокации SendLocation
Sending().SendContact Метод предназначен для отправки сообщения с контактом SendContact
Sending().SendLink Метод предназначен для отправки сообщения со ссылкой, по которой будут добавлены превью изображения, заголовок и описание SendLink
Sending().ForwardMessages Метод предназначен для пересылки сообщений в личный или групповой чат ForwardMessages
Sending().UploadFile Метод позволяет выгружать файл из локальной файловой системы, который позднее можно отправить методом SendFileByUrl UploadFile
Sending().SendPoll Метод предназначен для отправки сообщения с опросом в личный или групповой чат SendPoll
Service().CheckWhatsapp Метод проверяет наличие аккаунта WhatsApp на номере телефона CheckWhatsapp
Service().GetAvatar Метод возвращает аватар корреспондента или группового чата GetAvatar
Service().GetContacts Метод предназначен для получения списка контактов текущего аккаунта GetContacts
Service().GetContactInfo Метод предназначен для получения информации о контакте GetContactInfo
Service().DeleteMessage Метод удаляет сообщение из чата DeleteMessage
Service().ArchiveChat Метод архивирует чат ArchiveChat
Service().UnarchiveChat Метод разархивирует чат UnarchiveChat
Service().SetDisappearingChat Метод предназначен для изменения настроек исчезающих сообщений в чатах SetDisappearingChat
Webhook().Start Метод предназначен для старта получения новых уведомлений
Webhook().Stop Метод предназначен для остановки получения новых уведомлений

Документация по методам сервиса

Документация по методам сервиса.

Лицензия

Лицензировано на условиях Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0) . Смотрите файл LICENSE.