Вебхуки
Получайте HTTP-уведомления в реальном времени о событиях в проекте.
События
| Событие | Описание |
|---|---|
RENDER_COMPLETED | Рендеринг завершён успешно |
RENDER_FAILED | Ошибка рендеринга |
CACHE_PURGED | Кэш инвалидирован |
DOMAIN_VERIFIED | Домен верифицирован |
SEO_SCORE_DROP | Значительное падение SEO |
SITEMAP_UPDATED | Sitemap обработан |
Формат payload
Все вебхуки имеют такую структуру:
json{ "event": "RENDER_COMPLETED", "timestamp": "2024-01-15T10:30:00Z", "project": { "id": "project-123", "name": "My Project" }, "data": { "url": "https://example.com/page", "renderTimeMs": 2340, "statusCode": 200 } }
Проверка подписи
Все вебхуки подписаны HMAC-SHA256. Проверяйте подпись:
javascriptconst crypto = require('crypto') function verifyWebhook(payload, signature, secret) { const expected = crypto .createHmac('sha256', secret) .update(JSON.stringify(payload)) .digest('hex') return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expected) ) } // В обработчике вебхука app.post('/webhook', (req, res) => { const signature = req.headers['x-webhook-signature'] if (!verifyWebhook(req.body, signature, YOUR_SECRET)) { return res.status(401).send('Invalid signature') } // Обработка вебхука... })
Заголовки
Каждый запрос вебхука содержит:
| Заголовок | Описание |
|---|---|
X-Webhook-Event | Тип события |
X-Webhook-Signature | HMAC-SHA256 подпись |
X-Webhook-Timestamp | ISO timestamp |
User-Agent | CrawlerLens-Webhook/1.0 |
Политика повторов
- Неудачные доставки повторяются до 3 раз
- Экспоненциальная задержка: 1 мин, 5 мин, 15 мин
- Успех = статус код 2xx
Управление вебхуками
- Перейдите в проект → вкладка Вебхуки
- Нажмите Добавить вебхук
- Введите URL и выберите события
- Используйте кнопку Тест для проверки