Skip to content

Latest commit

 

History

History
130 lines (87 loc) · 4 KB

File metadata and controls

130 lines (87 loc) · 4 KB

whatsapp-api-webhook-server-golang

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

API

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

Авторизация

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

Пример подготовки среды для Ubuntu Server

Установка Go

На сервере должен быть установлен 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-golang

Импорт

import (
	"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.