SmsGateWay24 Платформа для общения с клиентами в SMS и WhatsApp

07.09.2024
tutorial

Как использовать вебхуки

Как использовать вебхуки

Что такое вебхуки и как они работают

Вебхук — это способ автоматически уведомить ваш сервер о событии в SmsGateWay24. Вместо опроса API ("что-то произошло?"), SmsGateWay24 сам отправляет POST-запрос на ваш URL в момент события.

События вебхуков в SmsGateWay24

Вебхук статуса доставки SMS

При каждом изменении статуса доставки (в очереди → отправлено → доставлено/ошибка) SmsGateWay24 уведомляет ваш сервер. Это позволяет обновлять статус в базе данных, запускать логику повторных попыток и показывать подтверждение доставки в UI.

Вебхук входящего SMS

При получении нового SMS на SIM-карту вашего устройства SmsGateWay24 отправляет вебхук с номером отправителя, текстом сообщения, временной меткой и ID устройства.

Как настроить вебхук в SmsGateWay24

Шаг 1: Создайте эндпоинт на вашем сервере

Вам нужен общедоступный URL, принимающий POST-запросы. Эндпоинт должен:

  • Принимать Content-Type: application/json
  • Быстро возвращать HTTP 200 OK (в течение 5 секунд)

Шаг 2: Зарегистрируйте URL вебхука в SmsGateWay24

  1. Войдите в аккаунт SmsGateWay24.
  2. Перейдите в раздел Вебхуки в панели управления.
  3. Нажмите Добавить вебхук.
  4. Введите URL вашего сервера.
  5. Выберите события: статус доставки, входящий SMS или оба.

Шаг 3: Протестируйте вебхук

Используйте кнопку тестирования в SmsGateWay24 для отправки тестового payload на ваш URL.

Структура payload вебхука

Статус доставки

{"event": "delivery_status", "message_id": "abc123", "phone": "+79001234567", "status": "delivered", "timestamp": "2026-01-15T10:30:00Z"}

Входящий SMS

{"event": "incoming_sms", "phone": "+79001234567", "message": "Привет!", "timestamp": "2026-01-15T10:31:00Z"}

Решение проблем с вебхуками

  • Вебхук не срабатывает: Убедитесь, что ваш URL общедоступен. При локальной разработке используйте ngrok.
  • Дублирование событий: Всегда отвечайте HTTP 200 немедленно.
  • Ошибки парсинга JSON: Убедитесь, что сервер читает тело запроса, а не параметры формы.