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 ist
task.failedAusgelöst, wenn eine Aufgabe fehlschlägt
GET/api/v1/webhooks
Liste 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/webhooks
Erstelle einen neuen Webhook-Endpunkt

Anfragekörper

{
  "url": "https://your-server.com/webhook",
  "events": ["job.completed", "job.failed"],
  "secret_key": "your-secret-key"
}

Body Fields

ParameterTypErforderlichBeschreibung
urlstringErforderlichIhre Webhook-Endpunkt-URL
eventsstring[]ErforderlichZu abonnierende Ereignisse
secret_keystringOptionalGeheimnis 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

KopfzeileBeschreibung
X-Webhook-TimestampUnix-Zeitstempel der Anfrage
X-Webhook-SignatureHMAC-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;
}
Nano Banana Pro API