Reenviar Assembly Notification
Tenta novamente a entrega de uma Assembly Notification.
https://api2.transloadit.com/ assembly_notifications/ {assemblyId}/ replayReenvia uma Assembly Notification, enviando novamente a requisição POST que contém o JSON de resultado da Assembly.
A menos que seja substituído, o reenvio reutiliza o modelo original de notify_url e reavalia seus
marcadores de posição de fields usando os valores fornecidos no reenvio, não os campos da Assembly original. Forneça novamente
todos os campos obrigatórios ou passe a URL resolvida desejada em notify_url.
Somente os filtros de notification_payload fornecidos na requisição original da Assembly são reutilizados.
Filtros definidos apenas em um Template não são preservados no reenvio.
A assinatura do reenvio normalmente usa a Auth Key registrada no Assembly Status, tendo como alternativa o segredo do solicitante autenticado do reenvio. Uma Assembly reexecutada mantém o ID histórico da chave da Assembly de origem, portanto, um reenvio de Notification pode usar um segredo diferente daquele usado na Notification inicial dessa Assembly, mesmo quando ambas as chaves permanecem ativas. Configure seu receptor de acordo com as Regras de seleção do segredo de assinatura de webhooks.
Ao usar um token bearer, envie esta requisição para o host da API na região da Assembly.
O reenvio de Notifications entre regiões não encaminha credenciais bearer. Use o host HTTPS
de assembly_ssl_url na resposta de Assembly Status.
Exemplo de requisição
Defina ASSEMBLY_ID com o valor do seu recurso, sem aplicar codificação percentual.
Defina ASSEMBLY_SSL_URL com a URL HTTPS de status retornada para a Assembly; esta requisição deve usar a mesma região.
Execute esta requisição em um shell no servidor com curl e um token bearer adequado em TRANSLOADIT_TOKEN. Se precisar de um token, expanda a configuração abaixo.
Precisa de um token bearer?
Em um shell confiável no servidor com curl e jq, defina TRANSLOADIT_KEY e TRANSLOADIT_SECRET com sua Auth Key e seu Auth Secret. Mantenha ambas as credenciais e o token resultante em segredo; nunca execute esta configuração em código de navegador.
Primeiro, crie um token com os escopos exigidos por este endpoint. Sua Auth Key já deve conceder esses escopos.
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
Mantenha este shell aberto e execute a requisição abaixo. Reutilize o token enquanto ele permanecer válido.
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}'
Autenticação
Este endpoint aceita params assinados ou um token bearer. Consulte Autenticação para instruções de configuração.
Escopo necessário para a Auth Key ou o token bearer: assemblies:write.
Requisições assinadas exigem tanto uma signature quanto um timestamp params.auth.expires no futuro. Tokens Bearer não exigem nenhum dos dois.
Parâmetros de caminho
assemblyId(segmento de caminho), obrigatório. padrão:^[a-z0-9]{32}$
Campos do formulário
Tipo de conteúdo: application/x-www-form-urlencoded
params(string JSON), obrigatório. Um objeto codificado em JSON cujas chaves suportadas estão listadas abaixo.signature(string). Obrigatório para requisições assinadas. Omita este campo ao usar um bearer token.
Chaves compatíveis dentro do campo params
Os campos de autenticação desta lista se aplicam a requisições assinadas. Com um bearer token, você pode omitir params.auth e o campo signature separado. Compare os parâmetros de requisição específicos de autenticação abaixo.
Esquema JSON completo
params: Somente os campos listados para este objeto são aceitos.
| Campo | Tipo e descrição |
|---|---|
params.obrigatório para requisições assinadas; opcional com um bearer token | Contém a chave de API da Transloadit e os metadados de autenticação por assinatura para o replay de uma Assembly Notification.
|
params.obrigatório | stringTimestamp de expiração no formato ISO 8601 situado no futuro. Obrigatório quando uma requisição é assinada ou exige autenticação por assinatura; requisições autenticadas por bearer podem omiti-lo. |
params.obrigatório | stringChave de API da Transloadit usada para autenticar as requisições |
params. | string | integerValor único e aleatório incluído nos parâmetros da requisição assinada para tornar cada assinatura única e evitar a reutilização acidental de assinaturas. |
params. | objectValores disponíveis para os placeholders na Notification URL usada neste replay. Os valores dos campos da Assembly original não são herdados. Forneça novamente todos os campos exigidos pelo modelo de URL; placeholders ausentes são substituídos por strings vazias. Esquema de propriedade adicionalqualquer valor |
params. | string | integerValor único e aleatório incluído nos parâmetros da requisição assinada para tornar cada assinatura única e evitar a reutilização acidental de assinaturas. |
params. | null | stringSubstitui a URL de notificação original da Assembly para este replay. Omissão, null ou uma string vazia reutiliza o template de URL original, não a URL resolvida anteriormente. Os placeholders de campo são avaliados novamente usando apenas os campos fornecidos no replay. Reenvie quaisquer campos obrigatórios ou informe a URL resolvida desejada. |
params. | booleanAguarda a conclusão da execução do replay. A omissão assume true como padrão; false retorna imediatamente após iniciá-la. Uma resposta bem-sucedida da API de replay não confirma a entrega do Webhook, mesmo quando true. Verifique o status de entrega registrado e o response_code na listagem de Assembly Notification. |
Parâmetros de requisição por método de autenticação
Com parâmetros assinados
Inclua sua Auth Key como params.auth.key. Ao assinar a requisição, inclua um timestamp futuro em params.auth.expires e envie a assinatura no campo separado signature. As definições de campos abaixo usam caminhos dentro de params.
Esquema JSON completo
params: Somente os campos listados para este objeto são aceitos.
Usa as definições de campo acima: params.auth, params.fields, params.nonce, params.notify_url, params.wait
Com um token bearer
Envie o token bearer no cabeçalho Authorization. Você pode omitir params.auth e o campo signature separado. Os demais parâmetros obrigatórios continuam se aplicando. As definições de campos abaixo usam caminhos dentro de params.
Esquema JSON completo
params: Somente os campos listados para este objeto são aceitos.
Usa as definições de campo acima: params.fields, params.nonce, params.notify_url, params.wait
| Campo | Tipo e descrição |
|---|---|
params. | Contém a chave de API da Transloadit e os metadados de autenticação por assinatura para o replay de uma Assembly Notification.
|
params. | stringTimestamp de expiração no formato ISO 8601 situado no futuro. Obrigatório quando uma requisição é assinada ou exige autenticação por assinatura; requisições autenticadas por bearer podem omiti-lo. |
params. | stringChave de API da Transloadit usada para autenticar as requisições |
params. | string | integerValor único e aleatório incluído nos parâmetros da requisição assinada para tornar cada assinatura única e evitar a reutilização acidental de assinaturas. |
Resposta
Veja um exemplo de corpo de resposta:
{
"notification_id": "notification-id",
"ok": "ASSEMBLY_NOTIFICATION_REPLAYED",
"success": true
}sucesso 2xx
Corpo da resposta JSON. application/json text/plain; charset=utf-8
Esquema do corpo da resposta
Esquema JSON completo
A resposta contém apenas os campos listados para este objeto.
| Campo | Tipo e descrição |
|---|---|
notification_idobrigatório | string (comprimento mínimo: 1) |
okobrigatório | "ASSEMBLY_NOTIFICATION_REPLAYED" | "ASSEMBLY_NOTIFICATION_REPLAYING" |
successobrigatório | boolean (sempre: true) |
Resposta de erro
Corpo da resposta JSON. application/json text/plain; charset=utf-8
Esquema do corpo da resposta
Esquema JSON completo
A resposta pode conter campos adicionais.
| Campo | Tipo e descrição |
|---|---|
assembly_id | string |
error | string (comprimento mínimo: 1) |
http_code | number | string
|
message | stringExplicação do erro legível por humanos. A redação pode variar; use o código |
reason | null | string | number | boolean | Array<qualquer valor> | objectQualquer um dos esquemas a seguir pode ser aplicado: nullnullstringstringnumbernumberbooleanbooleanArray<qualquer valor>Array<qualquer valor>Esquema do item do arrayqualquer valorobjectobjectEsquema de propriedade adicionalqualquer valor |
Se wait for false, o código de sucesso é ASSEMBLY_NOTIFICATION_REPLAYING.
Mesmo com wait: true, uma resposta bem-sucedida da API de replay significa que a execução do replay terminou, não que o Webhook foi entregue. Falhas de entrega não fazem a resposta da API de replay falhar. Inspecione o status e o response_code registrados com Recuperar Assembly Notifications; exija um response_code 2xx para confirmar a entrega. Uma entrega malsucedida não garante que um campo error fique salvo no registro da Notification.
As entradas da lista de Notifications não expõem o notification_id da resposta de replay, e replays concorrentes podem compartilhar um mesmo timestamp start. Um registro bem-sucedido mais antigo não confirma a entrega do replay que você acabou de solicitar. Para identificar um replay específico, inclua um marcador único definido pela sua aplicação na query string de um notify_url explícito e compare o url registrado com os logs de entrega do seu receptor. Use um marcador que não seja secreto; fragmentos de URL não são enviados ao seu receptor.