Уведомления о событиях
Настройка и использование вебхуков для получения уведомлений о событиях в режиме реального времени
Обзор
Вебхуки предоставляют возможность получать данные о различных событиях без необходимости постоянно опрашивать API. Система автоматически отправляет HTTP POST-запросы на указанный URL при наступлении выбранных событий.
Технические характеристики
Метод запроса
HTTP POST
Формат данных
JSON
Время ответа
HTTP 200 OK (до 10 секунд)
Повторные попытки
Экспоненциальная схема
При сбое системные вебхуки повторяются по экспоненциальной схеме: 1 мин, 5 мин, 15 мин, 1 час
Поддерживаемые события
В настоящее время поддерживается следующий тип событий:
Результат звонка
Получение данных о результатах звонков (статус, длительность, аудио)
Создание и управление вебхуками
Создание вебхука
Перейдите в раздел Колл-листы
Откройте панель управления и найдите раздел с колл-листами
Выберите колл-лист
Выберите колл-лист, для которого хотите настроить вебхук
Создайте вебхук
В блоке Вебхуки нажмите кнопку Создать вебхук
Настройте параметры
- Введите URL вашего сервера для приема вебхуков
- Выберите типы событий, о которых хотите получать уведомления
- Добавьте описание (опционально) для удобства управления
Сохраните секретный ключ
После создания вам будет показан секретный ключ вебхука. Сохраните его в надежном месте, так как он показывается только один раз
Секретный ключ показывается только один раз при создании вебхука и будет использоваться для проверки подлинности запросов.
Безопасность и аутентификация
Заголовки запросов
Каждый запрос вебхука включает следующие HTTP-заголовки:
Заголовок | Описание |
---|---|
Content-Type | application/json |
X-Webhook-Signature | HMAC SHA-256 подпись тела запроса |
X-Webhook-ID | Уникальный идентификатор вебхук-события |
X-Webhook-Timestamp | Время создания запроса в формате ISO 8601 |
X-Call-List-ID | ID колл-листа, связанного с событием |
Проверка подлинности запросов (необязательно)
Для обеспечения безопасности все запросы подписываются с использованием вашего секретного ключа вебхука. Это позволяет убедиться, что запросы действительно отправлены нашей платформой.
Алгоритм проверки подписи
Получите подпись
Получите заголовок X-Webhook-Signature
из входящего запроса
Получите тело запроса
Получите исходное тело запроса в виде строки
Создайте подпись
Создайте HMAC SHA-256 подпись тела запроса, используя ваш секретный ключ
Сравните подписи
Сравните вычисленную подпись с полученной в заголовке
Важно использовать сравнение строк, устойчивое к time-based атакам (например, crypto.timingSafeEqual()
в Node.js или hash_equals()
в PHP).
Типы событий и форматы данных
Результат звонка (call_result)
Отправляется после завершения звонка и содержит информацию о результате и записи разговора.
Описание полей
Рекомендации по реализации
Быстрый ответ
Ваш сервер должен отвечать кодом 200 OK в течение 10 секунд
Использование очередей
Для обработки вебхуков в фоновом режиме рекомендуется использовать очереди
Идемпотентность
Обрабатывайте вебхуки идемпотентно, так как одно событие может быть отправлено несколько раз
Проверка подписей
Всегда проверяйте подпись запроса для обеспечения безопасности
Логирование: Сохраняйте полученные запросы для отладки и аудита.
Устранение неполадок
Распространенные ошибки
Код ошибки | Описание | Решение |
---|---|---|
403 Forbidden | Доступ запрещен | Проверьте доступность сервера и настройки файрвола |
404 Not Found | URL не найден | Проверьте правильность URL |
5xx Server Error | Ошибка сервера | Проверьте логи вашего сервера |
Timeout | Превышено время ожидания | Оптимизируйте обработку запросов, используйте фоновые задачи |
Отладка
Для отладки вебхуков рекомендуется:
Локальная разработка
Использовать инструменты для локальной разработки, такие как ngrok или localtunnel
Логирование
Логировать все полученные запросы вебхуков
Проверка подписи
Проверять валидность подписи
Пропущенные события
Если вы не получаете события:
При возникновении проблем с вебхуками и необходимости более детальной информации, пожалуйста, свяжитесь с нашей технической поддержкой.