Reenviar una Assembly Notification
Vuelve a intentar la entrega de la notificación de una Assembly.
https://api2.transloadit.com/ assembly_notifications/ {assemblyId}/ replayReenvía una Assembly Notification, enviando de nuevo la solicitud POST que contiene el JSON del resultado de la Assembly.
A menos que se sobrescriba, el reenvío reutiliza la plantilla original de notify_url y vuelve a evaluar sus
marcadores de posición de fields con los valores proporcionados para el reenvío, no con los campos de la Assembly original. Vuelve a proporcionar
los campos necesarios o pasa la URL resuelta deseada en notify_url.
Solo se reutilizan los filtros de notification_payload proporcionados en la solicitud original de la Assembly.
Los filtros definidos únicamente en un Template no se conservan en el reenvío.
La firma del reenvío normalmente utiliza la Auth Key registrada en el Assembly Status, recurriendo como alternativa al secreto del solicitante autenticado del reenvío. Una Assembly reejecutada conserva el ID histórico de la clave de su Assembly de origen, por lo que un reenvío de Notification puede utilizar un secreto distinto del de la Notification inicial de esa Assembly incluso cuando ambas claves siguen activas. Configura tu receptor conforme a las reglas de selección del secreto de firma de webhooks.
Puedes enviar solicitudes de reenvío a https://api2.transloadit.com.
API2 reenvía los params firmados o las credenciales Bearer a la región de la Assembly cuando es necesario.
También puedes utilizar el origen HTTPS de assembly_ssl_url en la
respuesta de Assembly Status para contactar directamente con su región.
Ejemplo de solicitud
Asigna a ASSEMBLY_ID el valor de tu recurso sin aplicarle codificación porcentual.
Ejecuta esta solicitud en un shell del lado del servidor con curl y un token Bearer adecuado en TRANSLOADIT_TOKEN. Si necesitas un token, despliega la configuración que aparece a continuación.
¿Necesitas un token Bearer?
En un shell de confianza del lado del servidor con curl y jq, asigna a TRANSLOADIT_KEY y TRANSLOADIT_SECRET tu Auth Key y tu Auth Secret, respectivamente. Mantén en secreto ambas credenciales y el token resultante; nunca ejecutes esta configuración en código del navegador.
Primero, crea un token con los ámbitos requeridos por este endpoint. Tu Auth Key ya debe otorgar esos ámbitos.
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
Mantén este shell abierto y ejecuta la solicitud que aparece a continuación. Reutiliza el token mientras siga siendo válido.
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}'
Autenticación
Este endpoint acepta params firmados o un token Bearer. Consulta Autenticación para ver las instrucciones de configuración.
Ámbito requerido para el Auth Key o el token de portador: assemblies:write.
Las solicitudes firmadas requieren tanto una signature como una marca de tiempo futura en params.auth.expires. Los tokens Bearer no requieren ninguno de estos dos elementos.
Parámetros de ruta
assemblyId(segmento de ruta), obligatorio. patrón:^[a-z0-9]{32}$
Campos del formulario
Tipo de contenido: application/x-www-form-urlencoded
params(cadena JSON), obligatorio. Un objeto codificado en JSON cuyas claves compatibles se enumeran a continuación.signature(cadena). Obligatorio para las solicitudes firmadas. Omite este campo cuando uses un token Bearer.
Claves admitidas dentro del campo params
Los campos de autenticación de esta lista se aplican a las solicitudes firmadas. Con un token Bearer puedes omitir params.auth y el campo separado signature. Compara a continuación los parámetros de solicitud de cada método de autenticación.
JSON Schema completo
params: Solo se aceptan los campos enumerados para este objeto.
| Campo | Tipo y descripción |
|---|---|
params.obligatorio para las solicitudes firmadas; opcional con un token Bearer | Contiene la clave de API de Transloadit y los metadatos de Signature Authentication para el reenvío de una Assembly Notification.
|
params.obligatorio | stringMarca de tiempo de vencimiento ISO 8601 en el futuro. Es obligatoria cuando una solicitud está firmada o requiere autenticación mediante firma; las solicitudes autenticadas con Bearer pueden omitirla. |
params.obligatorio | stringClave de API de Transloadit utilizada para autenticar solicitudes |
params. | objectValores disponibles para los marcadores de posición de la URL de notificación utilizada en este reenvío. No se heredan los valores de los campos de la Assembly original. Vuelve a proporcionar todos los campos necesarios para la plantilla de URL; los marcadores sin valor se sustituyen por cadenas vacías. Esquema de propiedades adicionalescualquier valor |
params. | string | integerValor aleatorio y único incluido en los parámetros de las solicitudes firmadas para que cada firma sea única y evitar su reutilización accidental. |
params. | null | stringSustituye la URL original de Assembly Notification para este reenvío. Si se omite el valor, es null o es una cadena vacía, se reutiliza la plantilla de URL original, no la URL resuelta anteriormente. Los marcadores de posición de los campos se evalúan de nuevo usando solo los campos proporcionados para el reenvío. Vuelve a proporcionar todos los campos necesarios o pasa la URL resuelta que deseas usar. |
params. | booleanEspera a que termine la ejecución del reenvío. Si se omite, el valor predeterminado es true; false devuelve la respuesta inmediatamente después de iniciarla. Una respuesta correcta de la API de reenvío no confirma la entrega del Webhook, ni siquiera con true. Comprueba el estado de entrega registrado y response_code en la lista de Assembly Notifications. |
Parámetros de solicitud según el método de autenticación
Con parámetros firmados
Incluye tu Auth Key como params.auth.key. Al firmar la solicitud, incluye una marca de tiempo futura en params.auth.expires y envía la Signature en el campo separado signature. Las definiciones de los campos que aparecen a continuación usan rutas dentro de params.
JSON Schema completo
params: Solo se aceptan los campos enumerados para este objeto.
Utiliza las definiciones de campos indicadas arriba: params.auth, params.fields, params.nonce, params.notify_url, params.wait
Con un token Bearer
Envía el token Bearer en el encabezado Authorization. Puedes omitir params.auth y el campo independiente signature. Los demás parámetros obligatorios siguen siendo necesarios. Las definiciones de los campos que aparecen a continuación usan rutas dentro de params.
JSON Schema completo
params: Solo se aceptan los campos enumerados para este objeto.
Utiliza las definiciones de campos indicadas arriba: params.fields, params.nonce, params.notify_url, params.wait
| Campo | Tipo y descripción |
|---|---|
params. | Contiene la clave de API de Transloadit y los metadatos de Signature Authentication para el reenvío de una Assembly Notification.
|
params. | stringMarca de tiempo de vencimiento ISO 8601 en el futuro. Es obligatoria cuando una solicitud está firmada o requiere autenticación mediante firma; las solicitudes autenticadas con Bearer pueden omitirla. |
params. | stringClave de API de Transloadit utilizada para autenticar solicitudes |
Respuesta
Este es un ejemplo del cuerpo de la respuesta:
{
"notification_id": "notification-id",
"ok": "ASSEMBLY_NOTIFICATION_REPLAYED",
"success": true
}éxito 2xx
Cuerpo de respuesta JSON. application/json text/plain; charset=utf-8
Esquema del cuerpo de la respuesta
JSON Schema completo
La respuesta contiene únicamente los campos listados para este objeto.
| Campo | Tipo y descripción |
|---|---|
notification_idobligatorio | string (longitud mínima: 1) |
okobligatorio | "ASSEMBLY_NOTIFICATION_REPLAYED" | "ASSEMBLY_NOTIFICATION_REPLAYING" |
successobligatorio | boolean (siempre: true) |
Respuesta de error
Cuerpo de respuesta JSON. application/json text/plain; charset=utf-8
Esquema del cuerpo de la respuesta
JSON Schema completo
La respuesta puede contener campos adicionales.
| Campo | Tipo y descripción |
|---|---|
assembly_id | string |
error | string (longitud mínima: 1) |
http_code | number | string
|
message | stringExplicación del error legible por humanos. Su redacción puede variar; usa el código |
reason | null | string | number | boolean | Array<cualquier valor> | objectPuede aplicarse cualquiera de los esquemas siguientes: nullstringnumberbooleanArray<cualquier valor>Array<cualquier valor>Esquema de los elementos del arraycualquier valorobjectobjectEsquema de propiedades adicionalescualquier valor |
Si wait es false, el código de éxito es ASSEMBLY_NOTIFICATION_REPLAYING.
Incluso con wait: true, una respuesta satisfactoria de la API de reenvío significa que la ejecución del reenvío ha finalizado, no
que el Webhook se haya entregado. Los fallos de entrega no hacen que la respuesta de la API de reenvío indique un fallo.
Consulta los valores registrados de status y response_code mediante
Recuperar Assembly Notifications; exige un
response_code 2xx para confirmar la entrega. Una entrega fallida no garantiza que se guarde un campo error
en el registro de la Notification.
Las entradas de la lista de Notifications no exponen el notification_id de la respuesta del reenvío, y los reenvíos concurrentes
pueden compartir una marca de tiempo start. Un registro anterior con resultado satisfactorio no confirma la entrega del
reenvío que acabas de solicitar. Para identificar un reenvío concreto, incluye un marcador único definido por la aplicación
en la cadena de consulta de un notify_url explícito y coteja la url registrada con los registros de entrega de tu receptor.
Usa un marcador que no sea secreto; los fragmentos de URL no se envían a tu receptor.