Webhooks
Les webhooks te permettent de recevoir des notifications en temps réel sur les événements qui se produisent dans ton workspace Ignite. Au lieu d’interroger l’API pour les changements, les webhooks poussent les données vers ton serveur au fur et à mesure des événements.
Qu’est-ce qu’un webhook ?
Les webhooks sont des callbacks HTTP déclenchés lorsque des événements spécifiques se produisent. Lorsqu’un événement se produit (comme une vidéo créée ou mise à jour), Ignite envoie une requête HTTP POST à ton endpoint configuré avec les informations sur l’événement.
Cas d’usage
- Synchronisation CMS — Garde ton système de gestion de contenu externe synchronisé avec les changements de vidéos
- Automatisation de workflow — Déclenche des workflows automatisés quand des vidéos sont créées, mises à jour ou supprimées
- Notifications — Envoie des alertes à ton équipe quand le traitement vidéo est terminé
- Analytique — Suis les événements du cycle de vie des vidéos dans ton propre système d’analyse
Comment ça marche
Créer un abonnement webhook
Configure un abonnement webhook dans ton interface d’administration Ignite. Tu devras fournir :
- Un endpoint URL sur ton serveur capable de recevoir des requêtes HTTP POST
- Les types d’événements auxquels tu veux t’abonner
Recevoir les événements
Lorsqu’un événement souscrit se produit, Ignite envoie une requête HTTP POST à ton endpoint avec :
- Le type d’événement dans l’en-tête
X-Webhook-Event - Une signature pour la vérification dans l’en-tête
X-Webhook-Signature - Un identifiant de livraison unique dans l’en-tête
X-Webhook-Delivery-Id - L’objet vidéo complet comme corps JSON
Traiter et répondre
Ton endpoint doit :
- Vérifier la signature du webhook
- Traiter les données de l’événement
- Renvoyer un code de statut
2xxdans les 30 secondes
Les webhooks peuvent arriver dans le désordre ou être livrés plus d’une fois. Ton client est responsable de vérifier le timestamp updatedAt et l’id de la vidéo pour garantir un ordre correct et la cohérence des données. Compare toujours le timestamp entrant avec tes données stockées avant d’appliquer les mises à jour, et utilise l’en-tête X-Webhook-Delivery-Id pour détecter et ignorer les livraisons en double.
Abonnement webhook
Un abonnement webhook est une configuration qui définit où les événements doivent être envoyés et quels événements écouter.
Propriétés de l’abonnement
| Propriété | Type | Description |
|---|---|---|
id | string | Identifiant unique de l’abonnement |
url | string | L’URL de l’endpoint où les événements seront envoyés (HTTP ou HTTPS) |
events | object | Quels types d’événements sont activés |
events.videoCreated | boolean | Recevoir des événements quand des vidéos sont créées |
events.videoUpdated | boolean | Recevoir des événements quand des vidéos sont mises à jour |
events.videoDeleted | boolean | Recevoir des événements quand des vidéos sont supprimées |
active | boolean | Si le webhook est actuellement actif |
signingSecret | string | Clé secrète utilisée pour la vérification de la signature (générée automatiquement) |
workspace | string | Le workspace auquel ce webhook appartient |
Exemple d’objet d’abonnement
{
"id": "507f1f77bcf86cd799439011",
"url": "https://your-server.com/webhook",
"events": {
"videoCreated": true,
"videoUpdated": true,
"videoDeleted": false
},
"active": true,
"signingSecret": "whsec_abc123...",
"workspace": "507f1f77bcf86cd799439000"
}Format de la requête HTTP
Quand un événement se produit, Ignite envoie une requête POST à ton endpoint :
En-têtes
| En-tête | Description |
|---|---|
Content-Type | application/json |
X-Webhook-Event | Le type d’événement (par ex. video.created) |
X-Webhook-Signature | Signature HMAC-SHA256 pour la vérification |
X-Webhook-Delivery-Id | Identifiant unique pour cette livraison (utile pour l’idempotence) |
Corps
Le corps de la requête contient l’objet vidéo complet au format JSON. Consulte la documentation Objet vidéo pour la structure complète.
{
"id": "507f1f77bcf86cd799439011",
"title": "My Video",
"status": "COMPLETE",
"visibility": "public",
"duration": 120,
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-01-15T10:30:00.000Z",
// ... all other video properties
}Prochaines étapes
- Types d’événements — Découvre les types d’événements disponibles
- Vérification de la signature — Sécurise ton endpoint webhook
- Exemples — Vois des exemples d’implémentation complets