Webhooks
Уведомления в реальном времени о событиях публикации
Что такое Webhooks?
Вебхуки отправляют HTTP-запросы на ваш сервер при возникновении событий. Идеально для интеграций, мониторинга и автоматизации.
Создать вебхук
Создавайте вебхуки через веб-интерфейс или через API:
curl -X POST https://postvista.app/api/v1/webhooks \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Production Webhook",
"url": "https://myapp.com/webhooks/postvista",
"events": ["clip.published", "clip.failed"]
}'Доступные события
clip.createdСоздан новый пост
clip.scheduledПост запланирован к публикации
clip.publishingНачата публикация
clip.publishedУспешно опубликовано
clip.failedПубликация провалилась
clip.deletedПост удалён
Пример payload
{
"id": "evt_123",
"type": "clip.published",
"data": {
"clip": {
"id": "clip_456",
"caption": "Check this out!",
"platforms": ["instagram", "youtube"],
"status": "published"
}
},
"created_at": "2025-10-15T14:30:00Z"
}Безопасность
Проверяйте подписи вебхуков
Все вебхуки включают заголовок X-Webhook-Signature с HMAC-подписью.
// Next.js API Route Example
import crypto from 'crypto';
export async function POST(request: Request) {
const payload = await request.text();
const signature = request.headers.get('x-webhook-signature');
const expectedSignature = crypto
.createHmac('sha256', process.env.WEBHOOK_SECRET!)
.update(payload)
.digest('hex');
if (crypto.timingSafeEqual(Buffer.from(signature!), Buffer.from(expectedSignature))) {
// Valid webhook
const data = JSON.parse(payload);
// Process webhook...
}
}Протестируйте вебхук
Тестируйте через веб-интерфейс или API:
curl -X POST https://postvista.app/api/v1/webhooks/{webhook_id}/test \
-H "Authorization: Bearer TOKEN"Примеры использования
- • Отправка уведомлений в Slack при публикации постов
- • Автоматический повтор проваленных постов
- • Отслеживание аналитики публикаций
- • Запуск других рабочих процессов