webhooks
Sync Labs webhooks liefern HTTP POST-Benachrichtigungen in Echtzeit, wenn Ihre lip sync-Generierungsjobs abgeschlossen sind oder fehlschlagen. Verwenden Sie webhooks anstelle von Abfragen, um effiziente, ereignisgesteuerte Workflows zu erstellen, die ohne wiederholte API-Aufrufe auf Änderungen des Generierungsstatus reagieren.
Wie richte ich webhooks ein?
So verwenden Sie webhooks:
- Geben Sie einen
webhookUrl-Parameter an, wenn Sie einen API endpoint aufrufen, der ihn unterstützt. - Stellen Sie sicher, dass Ihr webhook endpoint HTTP
POST-Anfragen empfangen und verarbeiten kann und die [Webhook-Nutzlast für Statusaktualisierungen] (/api-reference/api/webhooks-payload-reference/webhooks) nutzen kann.
Aus Sicherheitsgründen muss Ihr webhook URL so konfiguriert sein, dass er und akzeptiert
Verarbeiten Sie HTTPS POST-Anfragen.
Durch die Nutzung von webhooks können Sie Ihren Arbeitsablauf mit nicht blockierenden Anrufen optimieren, sodass Sie sich auf andere Aufgaben konzentrieren können, während Sie Benachrichtigungen über den Abschluss von Aufträgen erhalten.
Wenn Sie keine Ereignisse empfangen, bestätigen Sie, dass der genaue webhookUrl in der Generierungsanforderung enthalten war, dass der endpoint über HTTPS öffentlich erreichbar ist und dass er schnell eine 2xx-Antwort auf POST-Anfragen zurückgibt. Wenn die Zustellung verpasst wird, weil Ihr endpoint nicht verfügbar ist oder die Anfrage ablehnt, fragen Sie als Ausweichlösung den Generierungsstatus endpoint ab.
Wann werden webhooks gesendet?
Ein Generierungs-webhook wird gesendet, sobald die Generierung einen Endstatus erreicht: COMPLETED, FAILED oder REJECTED. Ein Batch-webhook wird gesendet, wenn der Batch COMPLETED oder FAILED ist.
Jede Anfrage enthält diese Header:
Wiederholungen und Duplikate
Sync wiederholt webhooks, die Ihr endpoint nicht angenommen hat, für Generierungen und Batches gleichermaßen:
- Bis zu 6 Versuche über etwa 2 Stunden. Die Wiederholungen warten etwa 1, 3, 9, 27 und 60 Minuten (±25 % Streuung).
- Was wiederholt wird: Timeouts, Verbindungsfehler sowie
429- und5xx-Antworten. EinRetry-After-Header in diesen Antworten ersetzt die berechnete Wartezeit (zwischen 1 Sekunde und 60 Minuten). - Was nicht wiederholt wird: jede andere
4xx-Antwort, einschließlich408, eine ungültige URL oder eine andere Weiterleitung als307/308. Die Zustellung endet bei der ersten solchen Antwort. - Timeout: Jeder Versuch wartet bis zu 10 Sekunden auf Ihre Antwort. Antworten Sie sofort mit
2xxund erledigen Sie langsame Arbeit danach. - Ziele: Die URL muss auf eine öffentliche Adresse auflösen. Bis zu drei
307/308-Weiterleitungen werden verfolgt.
Eine Wiederholung kann eintreffen, nachdem Ihr endpoint das Ereignis bereits verarbeitet hat, zum Beispiel wenn Ihre 2xx-Antwort das Timeout überschritten hat. Behandeln Sie deshalb Duplikate: Deduplizieren Sie anhand des Headers Sync-Delivery-Id oder der id der Generierung bzw. des Batches im Payload. Jeder Versuch wird mit einem neuen Zeitstempel neu signiert, daher unterscheidet sich der Wert von Sync-Signature zwischen Versuchen derselben Zustellung.
Schlagen alle Versuche fehl, wird das Ereignis nicht erneut gesendet. Rufen Sie Get Generation oder Get Batch ab, um verpasste Ergebnisse zu erhalten.
Fehlerbehandlung in webhooks
Der Payload des Generierungs-webhooks hat für id, createdAt, status, model, input, webhookUrl, options und outputUrl dieselben Felder wie Get Generation, dazu synthesizedAudioUrl bei Generierungen mit Texteingabe. Wenn eine Generierung fehlschlägt oder abgelehnt wird, beschreiben zwei Felder den Grund; sonst sind beide null:
error: Eine für Menschen lesbare Fehlermeldung, die beschreibt, was schief gelaufen isterrorCode: Ein maschinenlesbarer Fehlercode für die programmgesteuerte Fehlerbehandlung (siehe Anleitung zur Fehlerbehandlung undGET /v2/errorsfür die vollständige Liste)
Verzweigen Sie anhand von errorCode, nicht anhand des Meldungstexts. Alle Felder finden Sie in der Payload-Referenz.
Überprüfen Sie die webhook-Signaturen
Um sicherzustellen, dass webhook-Anfragen von Sync Labs kommen, signieren wir jede webhook-Anfrage mit einer Signatur. Die Signatur ist im Sync-Signature-Header enthalten.
Um Signaturen zu überprüfen, verwenden Sie Ihr Signaturgeheimnis. Sie können es auch programmgesteuert mit GET /v2/organizations/webhook/secret abrufen. Bewahren Sie den vollständigen Wert whsec_... sicher auf; masked=true dient nur der Anzeige und darf nicht zur Überprüfung verwendet werden.
Der Header hat die Form t=<Zeitstempel>,v1=<Signatur>:
t: die Unix-Zeit in Sekunden, zu der dieser Versuch gesendet wurdev1: der HMAC-SHA256 als Hex von<t>.<roher Anfrage-Body>, mit Ihrem Signaturgeheimnis als Schlüssel
Berechnen Sie den HMAC über die exakt empfangenen Bytes, nicht über neu serialisiertes JSON. Um Wiederholungsangriffe zu begrenzen, können Sie zusätzlich Anfragen ablehnen, deren t weit von Ihrer aktuellen Zeit abweicht; lassen Sie einige Minuten Spielraum für Uhrabweichungen.
Verwandte Ressourcen - batchverarbeitung - verwenden Sie webhooks mit der batch-Verarbeitung für Arbeitsabläufe mit hohem Volumen - Ratenbegrenzungen - Verstehen Sie das API rate limiting und wie es sich auf die webhook-Lieferung auswirkt
Häufig gestellte Fragen
Wie teste ich webhooks lokal?
Verwenden Sie ein Tunneltool wie ngrok, um Ihren lokalen Server dem Internet zugänglich zu machen. Starten Sie Ihren webhook endpoint lokal und führen Sie dann ngrok aus, um einen öffentlichen HTTPS URL zu erhalten. Übergeben Sie diesen URL als webhookUrl, wenn Sie eine Generation erstellen. Sync Labs sendet POST-Anfragen über den Tunnel an Ihren lokalen Server.
Was passiert, wenn mein endpoint ausfällt?
Sync wiederholt Timeouts, Verbindungsfehler sowie 429- und 5xx-Antworten bis zu 6-mal über etwa 2 Stunden und beachtet dabei Retry-After. Andere 4xx-Antworten werden nicht wiederholt. Ist Ihr endpoint nach dem letzten Versuch noch nicht erreichbar, wird das Ereignis nicht erneut gesendet. Fragen Sie dann den Status-endpoint der Generierung oder des Batches ab, um verpasste Ergebnisse abzurufen. Durch Wiederholungen kann dasselbe Ereignis mehrfach ankommen; deduplizieren Sie anhand des Headers Sync-Delivery-Id oder der id der Generierung bzw. des Batches.
Wie verifiziere ich webhook-Signaturen?
Jede webhook-Anfrage enthält einen Sync-Signature-Header mit einem Zeitstempel und einem HMAC-SHA256-Hash. Verwenden Sie Ihr Signaturgeheimnis von der webhooks-Einstellungsseite, um die erwartete Signatur zu berechnen und sie mithilfe einer zeitsicheren Vergleichsfunktion zu vergleichen, um Timing-Angriffe zu verhindern. Siehe die Codebeispiele oben.

