Renvoyer une Assembly Notification
Réessaie d’envoyer une Assembly Notification.
https://api2.transloadit.com/ assembly_notifications/ {assemblyId}/ replayRenvoie une Assembly Notification en envoyant de nouveau la requête POST contenant le JSON du résultat de l’Assembly.
Sauf remplacement explicite, ce renvoi réutilise le modèle notify_url d’origine et réévalue ses
espaces réservés fields à l’aide des valeurs fournies pour le renvoi, et non des champs de l’Assembly d’origine. Fournissez de nouveau
les champs requis ou transmettez l’URL résolue souhaitée dans notify_url.
Seuls les filtres notification_payload fournis dans la requête de l’Assembly d’origine sont réutilisés.
Les filtres définis uniquement dans un Template ne sont pas conservés lors du renvoi.
La signature du renvoi utilise normalement l’Auth Key enregistrée dans l’Assembly Status, avec un recours au secret de l’appelant authentifié qui demande le renvoi si nécessaire. Une Assembly réexécutée conserve l’identifiant historique de clé de son Assembly parente. Le renvoi d’une Notification peut donc utiliser un secret différent de celui utilisé pour la Notification initiale de cette Assembly, même lorsque les deux clés restent actives. Configurez votre récepteur pour respecter les règles de sélection du secret de signature des webhooks.
Lorsque vous utilisez un jeton porteur, envoyez cette requête à l’hôte API de la région de l’Assembly.
Le renvoi de Notifications entre régions ne transmet pas les informations d’identification du jeton porteur. Utilisez l’hôte HTTPS
indiqué dans assembly_ssl_url dans la réponse Assembly Status.
Exemple de requête
Définissez ASSEMBLY_ID sur la valeur de votre ressource sans l’encoder en pourcentage.
Définissez ASSEMBLY_SSL_URL sur l’URL de statut HTTPS renvoyée pour l’Assembly ; cette requête doit utiliser la même région.
Exécutez cette requête dans un shell côté serveur avec curl et un jeton porteur approprié dans TRANSLOADIT_TOKEN. Si vous avez besoin d’un jeton, développez la section de configuration ci-dessous.
Besoin d’un jeton porteur ?
Dans un shell de confiance côté serveur disposant de curl et de jq, définissez TRANSLOADIT_KEY et TRANSLOADIT_SECRET sur votre Auth Key et votre Auth Secret. Gardez les deux informations d’identification et le jeton obtenu secrets ; n’exécutez jamais cette configuration dans du code de navigateur.
Créez d’abord un jeton avec les portées requises par ce point de terminaison. Votre Auth Key doit déjà accorder ces portées.
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
Gardez ce shell ouvert et exécutez la requête ci-dessous. Réutilisez le jeton tant qu’il reste valide.
API_ORIGIN="${ASSEMBLY_SSL_URL%/assemblies/*}"
curl --fail-with-body -sS --request POST \
--url "$API_ORIGIN/assembly_notifications/${ASSEMBLY_ID:?Set ASSEMBLY_ID}/replay" \
--header "Authorization: Bearer ${TRANSLOADIT_TOKEN:?Set TRANSLOADIT_TOKEN}" \
--data-urlencode 'params={"wait":true}'
Authentification
Ce point de terminaison accepte des params signés ou un jeton porteur. Consultez la section Authentification pour les instructions de configuration.
Portée requise pour l’Auth Key ou le jeton porteur : assemblies:write.
Les requêtes signées nécessitent à la fois une signature et un horodatage params.auth.expires situé dans le futur. Les jetons porteurs ne nécessitent ni l’un ni l’autre.
Paramètres de chemin
assemblyId(segment de chemin), obligatoire. motif :^[a-z0-9]{32}$
Champs de formulaire
Type de contenu : application/x-www-form-urlencoded
params(Chaîne JSON), obligatoire. Un objet encodé en JSON dont les clés prises en charge sont répertoriées ci-dessous.signature(chaîne de caractères). Obligatoire pour les requêtes signées. Omettez ce champ lorsque vous utilisez un jeton porteur.
Clés prises en charge dans le champ params
Les champs d’authentification de cette liste s’appliquent aux requêtes signées. Avec un jeton porteur, vous pouvez omettre params.auth et le champ distinct signature. Comparez les paramètres de requête spécifiques à l’authentification ci-dessous.
Schéma JSON complet
params: Seuls les champs répertoriés pour cet objet sont acceptés.
| Champ | Type et description |
|---|---|
params.obligatoire pour les requêtes signées ; facultatif avec un jeton porteur | Contient la clé API Transloadit et les métadonnées de Signature Authentication pour le renvoi d’une Assembly Notification.
|
params.obligatoire | stringHorodatage d’expiration au format ISO 8601 situé dans le futur. Obligatoire lorsqu’une requête est signée ou nécessite Signature Authentication ; les requêtes authentifiées par jeton porteur peuvent l’omettre. |
params.obligatoire | stringClé API Transloadit utilisée pour authentifier les requêtes |
params. | objectValeurs disponibles pour les espaces réservés dans la Notification URL utilisée pour ce renvoi. Les valeurs des champs de l’Assembly d’origine ne sont pas héritées. Fournissez à nouveau tous les champs nécessaires au modèle d’URL ; les espaces réservés manquants sont remplacés par des chaînes vides. Schéma de la propriété supplémentairen’importe quelle valeur |
params. | string | integerValeur unique et aléatoire incluse dans les paramètres de la requête signée pour rendre chaque signature unique et empêcher la réutilisation accidentelle d’une signature. |
params. | null | stringRemplace la Notification URL d’origine de l’Assembly pour ce renvoi. En cas d’omission, de null ou de chaîne vide, le modèle d’URL d’origine est réutilisé, et non l’URL précédemment résolue à partir de ce modèle. Les espaces réservés de champs sont de nouveau évalués en utilisant uniquement les champs fournis pour le renvoi. Fournissez de nouveau tous les champs requis ou transmettez l’URL résolue souhaitée. |
params. | booleanAttend la fin de l’exécution du renvoi. En cas d’omission, la valeur par défaut est true ; avec false, la réponse est renvoyée immédiatement après le démarrage du renvoi. Une réponse réussie de l’API de renvoi ne confirme pas la livraison du webhook, même lorsque la valeur est true. Vérifiez le statut de livraison enregistré et response_code dans la liste des Assembly Notifications. |
Paramètres de requête par méthode d’authentification
Avec des paramètres signés
Incluez votre Auth Key dans params.auth.key. Lors de la signature de la requête, incluez un horodatage futur dans params.auth.expires et envoyez la signature dans le champ distinct signature. Les définitions des champs ci-dessous utilisent des chemins à l’intérieur de params.
Schéma JSON complet
params: Seuls les champs répertoriés pour cet objet sont acceptés.
Utilise les définitions des champs ci-dessus : params.auth, params.fields, params.nonce, params.notify_url, params.wait
Avec un jeton porteur
Envoyez le jeton porteur dans l’en-tête Authorization. Vous pouvez omettre params.auth et le champ distinct signature. Les autres paramètres obligatoires restent requis. Les définitions des champs ci-dessous utilisent des chemins à l’intérieur de params.
Schéma JSON complet
params: Seuls les champs répertoriés pour cet objet sont acceptés.
Utilise les définitions des champs ci-dessus : params.fields, params.nonce, params.notify_url, params.wait
| Champ | Type et description |
|---|---|
params. | Contient la clé API Transloadit et les métadonnées de Signature Authentication pour le renvoi d’une Assembly Notification.
|
params. | stringHorodatage d’expiration au format ISO 8601 situé dans le futur. Obligatoire lorsqu’une requête est signée ou nécessite Signature Authentication ; les requêtes authentifiées par jeton porteur peuvent l’omettre. |
params. | stringClé API Transloadit utilisée pour authentifier les requêtes |
Réponse
Voici un exemple de corps de réponse :
{
"notification_id": "notification-id",
"ok": "ASSEMBLY_NOTIFICATION_REPLAYED",
"success": true
}Succès 2xx
Corps de la réponse JSON. application/json text/plain; charset=utf-8
Schéma du corps de la réponse
Schéma JSON complet
La réponse contient uniquement les champs répertoriés pour cet objet.
| Champ | Type et description |
|---|---|
notification_idobligatoire | string (longueur minimale : 1) |
okobligatoire | "ASSEMBLY_NOTIFICATION_REPLAYED" | "ASSEMBLY_NOTIFICATION_REPLAYING" |
successobligatoire | boolean (toujours : true) |
Réponse d’erreur
Corps de la réponse JSON. application/json text/plain; charset=utf-8
Schéma du corps de la réponse
Schéma JSON complet
La réponse peut contenir des champs supplémentaires.
| Champ | Type et description |
|---|---|
assembly_id | string |
error | string (longueur minimale : 1) |
http_code | number | string
|
message | stringExplication de l’erreur destinée à être lue par un humain. Sa formulation peut varier ; utilisez le code |
reason | null | string | number | boolean | Array<n’importe quelle valeur> | objectN’importe lequel des schémas suivants peut s’appliquer : nullstringnumberbooleanArray<n’importe quelle valeur>Array<n’importe quelle valeur>Schéma d’un élément de tableaun’importe quelle valeurobjectobjectSchéma de la propriété supplémentairen’importe quelle valeur |
Si wait vaut false, le code de succès est ASSEMBLY_NOTIFICATION_REPLAYING.
Même avec wait: true, une réponse de succès de l’API de renvoi signifie que l’exécution du renvoi est terminée, et non
que le webhook a été livré. Les échecs de livraison n’entraînent pas l’échec de la réponse de l’API de renvoi.
Consultez les valeurs enregistrées de status et de response_code à l’aide de
Récupérer les Assembly Notifications ; exigez un
response_code de type 2xx pour confirmer la livraison. Un échec de livraison ne garantit pas la présence d’un champ error
sauvegardé dans l’enregistrement de la Notification.
Les entrées de la liste des Notifications n’exposent pas le notification_id de la réponse du renvoi, et des renvois
simultanés peuvent partager un horodatage start. Un enregistrement de réussite antérieur ne confirme pas la livraison du
renvoi que vous venez de demander. Pour identifier un renvoi précis, incluez un marqueur unique défini par l’application
dans la chaîne de requête d’une notify_url explicite et faites correspondre l’url enregistrée avec les journaux de livraison de votre récepteur.
Utilisez un marqueur non secret ; les fragments d’URL ne sont pas envoyés à votre récepteur.