Перейти к основному содержимому

Вебхуки

Вебхуки — это способ, которым провайдеры каналов уведомляют PulseHub о событиях — клиент отправил сообщение, изменился статус доставки и т.д.


Шаблон URL вебхука

https://yourdomain.com/webhooks/{channel_type}/{channel_id}

Верификация вебхука (GET-запросы)

Некоторые провайдеры проверяют ваш URL вебхука с помощью вызова перед отправкой реальных сообщений:

WhatsApp / Facebook / Instagram

PulseHub проверяет hub.verify_token и возвращает hub.challenge.

Telegram

GET-верификация не требуется — достаточно установить вебхук через Bot API.

Viber

Отправляет событие conversation_started при первом открытии. PulseHub возвращает {"status": 0}.


Проверка подписи

ПровайдерЗаголовокСекрет
WhatsApp/Facebook/InstagramX-Hub-Signature-256App Secret
ViberX-Viber-Content-SignatureAuth Token
TwilioБезопасность на основе URL
TelegramБезопасность на основе UUID в URL

Все HMAC-сравнения используют hash_equals() (постоянное время).


Журналирование событий

Каждый payload вебхука записывается в таблицу webhook_events со статусом status = pending. После обработки: processed. При неудаче: failed.


Повтор неудачных вебхуков

Cron-задача повторяет неудачные события до 5 раз в течение 24 часов.