Assembly Notification erneut senden
Versucht erneut, eine Assembly Notification zuzustellen.
https://api2.transloadit.com/ assembly_notifications/ {assemblyId}/ replaySendet eine Assembly Notification erneut, indem die POST-Anfrage mit dem Ergebnis-JSON der Assembly
erneut gesendet wird. Sofern nichts anderes angegeben wird, verwendet das erneute Senden die ursprüngliche notify_url-Vorlage wieder und wertet deren
fields-Platzhalter anhand der für das erneute Senden übergebenen Werte neu aus, nicht anhand der fields der ursprünglichen Assembly. Übergeben Sie
alle erforderlichen fields erneut oder übergeben Sie die gewünschte aufgelöste URL in notify_url.
Nur notification_payload-Filter, die in der ursprünglichen Assembly-Anfrage übergeben wurden, werden wiederverwendet.
Filter, die nur in einem Template definiert sind, bleiben beim erneuten Senden nicht erhalten.
Das Signieren beim erneuten Senden verwendet normalerweise den im Assembly Status aufgezeichneten Auth Key, ersatzweise das Secret des authentifizierten Aufrufers der Anfrage zum erneuten Senden. Eine erneut ausgeführte Assembly behält die historische Schlüssel-ID ihrer übergeordneten Assembly bei, sodass beim erneuten Senden einer Notification ein anderes Secret verwendet werden kann als bei der ursprünglichen Notification dieser Assembly, selbst wenn beide Schlüssel weiterhin aktiv sind. Konfigurieren Sie Ihren Empfänger entsprechend den Regeln zur Auswahl des Secrets für die Webhook-Signierung.
Sie können Anfragen zum erneuten Senden an https://api2.transloadit.com senden.
API2 leitet bei Bedarf signierte params oder Bearer-Zugangsdaten an die Region der Assembly weiter.
Sie können auch den HTTPS-Origin aus assembly_ssl_url in der
Assembly Status-Antwort verwenden, um die Region der Assembly direkt zu kontaktieren.
Beispielanfrage
Setzen Sie ASSEMBLY_ID auf den Wert Ihrer Ressource, ohne Prozentkodierung anzuwenden.
Führen Sie diese Anfrage in einer serverseitigen Shell mit curl und einem geeigneten Bearer-Token in TRANSLOADIT_TOKEN aus. Wenn Sie ein Token benötigen, klappen Sie die nachfolgende Einrichtung auf.
Benötigen Sie ein Bearer-Token?
Setzen Sie in einer vertrauenswürdigen serverseitigen Shell mit curl und jq die Variablen TRANSLOADIT_KEY und TRANSLOADIT_SECRET auf Ihren Auth Key bzw. Ihr Auth Secret. Halten Sie beide Zugangsdaten und das resultierende Token geheim; führen Sie diese Einrichtung niemals im Browsercode aus.
Erstellen Sie zunächst ein Token mit den für diesen Endpunkt erforderlichen Scopes. Ihr Auth Key muss diese Scopes bereits gewähren.
if ! TOKEN_RESPONSE="$(curl --fail-with-body -sS \
--request POST \
--url 'https://api2.transloadit.com/token' \
--user "${TRANSLOADIT_KEY:?Set TRANSLOADIT_KEY}:${TRANSLOADIT_SECRET:?Set TRANSLOADIT_SECRET}" \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'aud=api2' \
--data-urlencode 'scope=assemblies:write')"; then
printf '%s\n' "$TOKEN_RESPONSE" >&2
exit 1
fi
TRANSLOADIT_TOKEN="$(printf '%s' "$TOKEN_RESPONSE" |
jq -er '.access_token | strings | select(length > 0)')" || exit 1
Lassen Sie diese Shell geöffnet und führen Sie die folgende Anfrage aus. Verwenden Sie das Token wieder, solange es gültig bleibt.
curl --fail-with-body -sS --request POST \
--url "https://api2.transloadit.com/assembly_notifications/${ASSEMBLY_ID:?Set ASSEMBLY_ID}/replay" \
--header "Authorization: Bearer ${TRANSLOADIT_TOKEN:?Set TRANSLOADIT_TOKEN}" \
--data-urlencode 'params={"wait":true}'
Authentifizierung
Dieser Endpunkt akzeptiert signierte params oder ein Bearer-Token. Anweisungen zur Einrichtung finden Sie unter Authentifizierung.
Erforderlicher Berechtigungsumfang für Auth Key oder Bearer-Token: assemblies:write.
Signierte Anfragen erfordern sowohl eine signature als auch einen in der Zukunft liegenden Zeitstempel für params.auth.expires. Bearer-Tokens erfordern keines von beiden.
Pfadparameter
assemblyId(Pfadsegment), erforderlich. Muster:^[a-z0-9]{32}$
Formularfelder
Content-Type: application/x-www-form-urlencoded
params(JSON-Zeichenfolge), erforderlich. Ein JSON-codiertes Objekt, dessen unterstützte Schlüssel unten aufgeführt sind.signature(Zeichenfolge). Für signierte Anfragen erforderlich. Lassen Sie dieses Feld weg, wenn Sie ein Bearer-Token verwenden.
Unterstützte Schlüssel im Feld params
Die Authentifizierungsfelder in dieser Liste gelten für signierte Anfragen. Mit einem Bearer-Token können Sie params.auth und das separate Feld signature weglassen. Vergleichen Sie unten die Anfrageparameter der einzelnen Authentifizierungsmethoden.
Vollständiges JSON Schema
params: Es werden nur die für dieses Objekt aufgeführten Felder akzeptiert.
| Feld | Typ und Beschreibung |
|---|---|
params.für signierte Anfragen erforderlich; mit einem Bearer-Token optional | Enthält den Transloadit-API-Schlüssel und Metadaten für die Signature Authentication beim erneuten Versand einer Assembly Notification.
|
params.erforderlich | stringISO-8601-Ablaufzeitstempel in der Zukunft. Erforderlich, wenn eine Anfrage signiert ist oder Signaturauthentifizierung erfordert; mit Bearer authentifizierte Anfragen können ihn weglassen. |
params.erforderlich | stringTransloadit API-Schlüssel zur Authentifizierung von Anfragen |
params. | objectWerte, die den Platzhaltern in der für diesen erneuten Versand verwendeten Notification-URL zur Verfügung stehen. Die Feldwerte der ursprünglichen Assembly werden nicht übernommen. Geben Sie alle für die URL-Vorlage benötigten Felder erneut an; fehlende Platzhalter werden durch leere Zeichenfolgen ersetzt. Schema für zusätzliche Eigenschaftenbeliebiger Wert |
params. | string | integerEindeutiger Zufallswert, der in die Parameter signierter Anfragen aufgenommen wird, damit jede Signatur eindeutig ist und nicht versehentlich wiederverwendet werden kann. |
params. | null | stringÜberschreibt die ursprüngliche Assembly Notification-URL für diesen erneuten Versand. Bei Auslassung, null oder einer leeren Zeichenfolge wird die ursprüngliche URL-Vorlage wiederverwendet, nicht die zuvor aufgelöste URL. Feldplatzhalter werden erneut ausgewertet, ausschließlich mit den beim erneuten Versand angegebenen Feldern. Geben Sie alle erforderlichen Felder erneut an oder übergeben Sie die gewünschte aufgelöste URL. |
params. | booleanWartet, bis die Ausführung des erneuten Versands abgeschlossen ist. Wird der Parameter weggelassen, ist der Standardwert true; false gibt die Antwort unmittelbar nach dem Start zurück. Eine erfolgreiche API-Antwort zum erneuten Versand bestätigt keine Webhook-Zustellung, auch nicht bei true. Prüfen Sie den gespeicherten Zustellungsstatus und response_code in der Liste der Assembly Notifications. |
Anfrageparameter nach Authentifizierungsmethode
Mit signierten Parametern
Geben Sie Ihren Auth Key als params.auth.key an. Wenn Sie die Anfrage signieren, geben Sie einen in der Zukunft liegenden Zeitstempel für params.auth.expires an und senden Sie die Signature im separaten Feld signature. Die folgenden Felddefinitionen verwenden Pfade innerhalb von params.
Vollständiges JSON Schema
params: Es werden nur die für dieses Objekt aufgeführten Felder akzeptiert.
Verwendet die oben angegebenen Felddefinitionen: params.auth, params.fields, params.nonce, params.notify_url, params.wait
Mit einem Bearer-Token
Senden Sie das Bearer-Token im Authorization-Header. Sie können params.auth und das separate Feld signature weglassen. Die übrigen erforderlichen Parameter müssen weiterhin angegeben werden. Die folgenden Felddefinitionen verwenden Pfade innerhalb von params.
Vollständiges JSON Schema
params: Es werden nur die für dieses Objekt aufgeführten Felder akzeptiert.
Verwendet die oben angegebenen Felddefinitionen: params.fields, params.nonce, params.notify_url, params.wait
| Feld | Typ und Beschreibung |
|---|---|
params. | Enthält den Transloadit-API-Schlüssel und Metadaten für die Signature Authentication beim erneuten Versand einer Assembly Notification.
|
params. | stringISO-8601-Ablaufzeitstempel in der Zukunft. Erforderlich, wenn eine Anfrage signiert ist oder Signaturauthentifizierung erfordert; mit Bearer authentifizierte Anfragen können ihn weglassen. |
params. | stringTransloadit API-Schlüssel zur Authentifizierung von Anfragen |
Antwort
Hier sehen Sie ein Beispiel für einen Antworttext:
{
"notification_id": "notification-id",
"ok": "ASSEMBLY_NOTIFICATION_REPLAYED",
"success": true
}2xx-Erfolg
JSON-Response-Body. application/json text/plain; charset=utf-8
Schema des Response-Bodys
Vollständiges JSON Schema
Die Antwort enthält nur die für dieses Objekt aufgeführten Felder.
| Feld | Typ und Beschreibung |
|---|---|
notification_iderforderlich | string (minimale Länge: 1) |
okerforderlich | "ASSEMBLY_NOTIFICATION_REPLAYED" | "ASSEMBLY_NOTIFICATION_REPLAYING" |
successerforderlich | boolean (immer: true) |
Fehlerantwort
JSON-Response-Body. application/json text/plain; charset=utf-8
Schema des Response-Bodys
Vollständiges JSON Schema
Die Antwort kann zusätzliche Felder enthalten.
| Feld | Typ und Beschreibung |
|---|---|
assembly_id | string |
error | string (minimale Länge: 1) |
http_code | number | string
|
message | stringMenschenlesbare Erklärung des Fehlers. Die Formulierung kann variieren; verwenden Sie den Code |
reason | null | string | number | boolean | Array<beliebiger Wert> | objectEines der folgenden Schemas kann gelten: nullstringnumberbooleanArray<beliebiger Wert>Array<beliebiger Wert>Schema eines Array-Elementsbeliebiger WertobjectobjectSchema für zusätzliche Eigenschaftenbeliebiger Wert |
Wenn wait den Wert false hat, lautet der Erfolgscode ASSEMBLY_NOTIFICATION_REPLAYING.
Auch bei wait: true bedeutet eine erfolgreiche API-Antwort auf das erneute Senden, dass der Sendevorgang abgeschlossen ist, nicht aber,
dass der Webhook zugestellt wurde. Zustellungsfehler führen nicht dazu, dass die API-Antwort auf das erneute Senden fehlschlägt.
Prüfen Sie die aufgezeichneten Werte für status und response_code mithilfe von
Assembly Notifications abrufen; setzen Sie zur Bestätigung der Zustellung einen
response_code von 2xx voraus. Eine fehlgeschlagene Zustellung garantiert nicht, dass im Notification-Datensatz ein error-Feld
gespeichert ist.
Einträge in der Liste der Notifications enthalten nicht die notification_id aus der Antwort auf das erneute Senden, und gleichzeitige
erneute Sendevorgänge können denselben start-Zeitstempel haben. Ein älterer erfolgreicher Datensatz bestätigt nicht die Zustellung beim
soeben von Ihnen angeforderten erneuten Senden. Um einen bestimmten erneuten Sendevorgang zu identifizieren, fügen Sie eine eindeutige, anwendungsdefinierte
Markierung in den Query-String einer expliziten notify_url ein und gleichen Sie die aufgezeichnete url mit den Zustellungsprotokollen Ihres Empfängers ab.
Verwenden Sie eine nicht geheime Markierung; URL-Fragmente werden nicht an Ihren Empfänger gesendet.