whatsapp-api-webhook-server-golang - библиотека для интеграции с мессенджером WhatsApp через API сервиса green-api.com. Чтобы воспользоваться библиотекой, нужно получить регистрационный токен и ID аккаунта в личном кабинете. Есть бесплатный тариф аккаунта разработчика.
Документация к REST API находится по ссылке. Библиотека является оберткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.
Чтобы отправить сообщение или выполнить другие методы Green API, аккаунт WhatsApp в приложении телефона должен быть в авторизованном состоянии. Для авторизации аккаунта перейдите в личный кабинет и сканируйте QR-код с использованием приложения WhatsApp.
На сервере должен быть установлен Go. Инструкция по установке Go.
Обновим систему:
sudo apt update
sudo apt upgrade -yНастроим брандмауэр:
Разрешим соединение по SSH:
sudo ufw allow sshБазовые правила:
sudo ufw default deny incoming
sudo ufw default allow outgoingРазрешаем соединения по HTTP и HTTPS:
sudo ufw allow http
sudo ufw allow httpsАктивируем брандмауэр:
sudo ufw enableНе забудьте создать модуль:
go mod init exampleУстановка:
go get github.com/green-api/whatsapp-api-webhook-server-golangimport (
"github.com/green-api/whatsapp-api-webhook-server-golang/pkg"
)
webhook := pkg.Webhook{
Address: ":80",
Pattern: "/",
WebhookToken: "your_token_here", // Опционально: для авторизации
}
WebhookToken является опциональным. Когда указан, сервер проверяет входящие запросы согласно:
- Bearer авторизация:
Authorization: Bearer <token> - Basic авторизация:
Authorization: Basic <base64-encoded-token>
Функция StartServer принимает функцию-обработчик. Функция-обработчик должна содержать 1
параметр (body map[string]interface{}). При получении нового уведомления ваша функция-обработчик будет выполнена.
Ссылка на пример: main.go.
_ := webhook.StartServer(func(body map[string]interface{}) {
fmt.Println(body)
})
go run main.goДокументация по методам сервиса
Лицензировано на условиях Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0) . LICENSE.