Webhooks
Mit Webhooks erhältst du Echtzeit-Benachrichtigungen über Ereignisse in deinem Ignite-Workspace. Statt die API ständig abzufragen, schickt Ignite bei Ereignissen Daten an deinen Server.
Was sind Webhooks?
Webhooks sind HTTP-Callbacks, die ausgelöst werden, wenn bestimmte Ereignisse eintreten. Tritt ein Ereignis ein (z. B. wird ein Video erstellt oder aktualisiert), sendet Ignite eine HTTP-POST-Anfrage an deinen konfigurierten Endpoint mit Informationen zum Ereignis.
Anwendungsfälle
- CMS-Synchronisation — Halte dein externes Content-Management-System mit Videoänderungen synchron
- Workflow-Automatisierung — Starte automatisierte Abläufe, wenn Videos erstellt, aktualisiert oder gelöscht werden
- Benachrichtigungen — Informiere dein Team, wenn die Videoverarbeitung fertig ist
- Analytics — Erfasse den Video-Lebenszyklus in deinem eigenen Analysesystem
So funktioniert es
Webhook-Abonnement anlegen
Richte ein Webhook-Abonnement in der Ignite-Admin-Oberfläche ein. Du brauchst:
- eine URL auf deinem Server, die HTTP-
POST-Anfragen entgegennehmen kann - die Ereignistypen, für die du dich anmelden willst
Ereignisse empfangen
Tritt ein abonniertes Ereignis ein, sendet Ignite eine HTTP-POST-Anfrage an deinen Endpoint mit:
- dem Ereignistyp im Header
X-Webhook-Event - einer Signatur zur Verifizierung im Header
X-Webhook-Signature - einer eindeutigen Zustell-ID im Header
X-Webhook-Delivery-Id - dem vollständigen Video-Objekt als JSON-Body
Verarbeiten und antworten
Dein Endpoint sollte:
- die Webhook-Signatur prüfen
- die Ereignisdaten verarbeiten
- innerhalb von 30 Sekunden einen Statuscode
2xxzurückgeben
Webhooks können in falscher Reihenfolge ankommen oder mehrfach zugestellt werden. Du bist dafür verantwortlich, den Zeitstempel updatedAt und die Video-id zu prüfen, um Reihenfolge und Datenkonsistenz sicherzustellen. Vergleiche den eingehenden Zeitstempel immer mit deinen gespeicherten Daten, bevor du Updates anwendest, und nutze den Header X-Webhook-Delivery-Id, um doppelte Zustellungen zu erkennen und zu überspringen.
Webhook-Abonnement
Ein Webhook-Abonnement legt fest, wohin Ereignisse gesendet werden und welche Ereignisse du abonnierst.
Eigenschaften des Abonnements
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
id | string | Eindeutige Kennung des Abonnements |
url | string | Die Endpoint-URL, an die Ereignisse gesendet werden (HTTP oder HTTPS) |
events | object | Welche Ereignistypen aktiv sind |
events.videoCreated | boolean | Ereignisse bei neu erstellten Videos |
events.videoUpdated | boolean | Ereignisse bei aktualisierten Videos |
events.videoDeleted | boolean | Ereignisse bei gelöschten Videos |
active | boolean | Ob der Webhook derzeit aktiv ist |
signingSecret | string | Geheimer Schlüssel für die Signaturprüfung (automatisch erzeugt) |
workspace | string | Der Workspace, zu dem dieser Webhook gehört |
Beispiel-Abonnementobjekt
{
"id": "507f1f77bcf86cd799439011",
"url": "https://your-server.com/webhook",
"events": {
"videoCreated": true,
"videoUpdated": true,
"videoDeleted": false
},
"active": true,
"signingSecret": "whsec_abc123...",
"workspace": "507f1f77bcf86cd799439000"
}HTTP-Anfrageformat
Wenn ein Ereignis eintritt, sendet Ignite eine POST-Anfrage an deinen Endpoint:
Header
| Header | Beschreibung |
|---|---|
Content-Type | application/json |
X-Webhook-Event | Der Ereignistyp (z. B. video.created) |
X-Webhook-Signature | HMAC-SHA256-Signatur zur Verifizierung |
X-Webhook-Delivery-Id | Eindeutige Kennung dieser Zustellung (hilfreich für Idempotenz) |
Body
Der Anfragebody enthält das vollständige Video-Objekt als JSON. Die vollständige Struktur steht in der Dokumentation zum Video-Objekt.
{
"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
}Nächste Schritte
- Ereignistypen — Welche Ereignistypen es gibt
- Signaturverifizierung — Endpoint absichern
- Beispiele — Vollständige Implementierungsbeispiele