Webhooks
Erhalten Sie Echtzeit-Benachrichtigungen, wenn Aufgaben abgeschlossen sind oder fehlschlagen.
Übersicht
Webhooks ermöglichen es Ihnen, HTTP-Rückrufe zu erhalten, wenn Ihre Bild- oder Videogenerierungsaufgaben abgeschlossen sind. Anstatt Ergebnisse abzufragen, können Sie einen Webhook-Endpunkt einrichten, um automatische Benachrichtigungen zu erhalten.
Verfügbare Veranstaltungen
task.completedAusgelöst, wenn eine Aufgabe erfolgreich abgeschlossen isttask.failedAusgelöst, wenn eine Aufgabe fehlschlägtGET
/api/v1/webhooksListe alle deine Webhook-Konfigurationen
Antwort
{
"success": true,
"data": [
{
"id": 1,
"url": "https://your-server.com/webhook",
"events": ["job.completed", "job.failed"],
"status": "active"
}
]
}POST
/api/v1/webhooksErstelle einen neuen Webhook-Endpunkt
Anfragekörper
{
"url": "https://your-server.com/webhook",
"events": ["job.completed", "job.failed"],
"secret_key": "your-secret-key"
}Body Fields
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| url | string | Erforderlich | Ihre Webhook-Endpunkt-URL |
| events | string[] | Erforderlich | Zu abonnierende Ereignisse |
| secret_key | string | Optional | Geheimnis zur Signaturüberprüfung |
Antwort
{
"success": true,
"data": {
"id": 1,
"url": "https://your-server.com/webhook",
"events": ["job.completed", "job.failed"],
"status": "active"
}
}DELETE
/api/v1/webhooks/{id}Webhook-Endpunkt löschen
Antwort
{
"success": true,
"data": { "id": 1 }
}Webhook-Nutzlast
Wenn ein Ereignis eintritt, senden wir eine POST-Anfrage an Ihre Webhook-URL mit der folgenden Nutzlast:
Überschriften
| Kopfzeile | Beschreibung |
|---|---|
| X-Webhook-Timestamp | Unix-Zeitstempel der Anfrage |
| X-Webhook-Signature | HMAC-SHA256-Signatur zur Verifizierung |
Beispiel-Nutzlast
{
"event": "job.completed",
"task_id": "task_xxx",
"task_type": "image",
"status": "completed",
"data": {
"url": "https://cdn.example.com/image.png",
"credits_charged": 6
},
"timestamp": "2024-12-23T10:00:00Z"
}Signaturprüfung
Überprüfen Sie die Echtheit von Webhooks mit HMAC-SHA256
const crypto = require('crypto');
function verifySignature(payload, signature, secret, timestamp) {
const message = `${timestamp}.${JSON.stringify(payload)}`;
const expectedSig = crypto
.createHmac('sha256', secret)
.update(message)
.digest('hex');
return `v1=${expectedSig}` === signature;
}