mediaId recebido. O exemplo completo no servidor abaixo envia um PDF.
Antes de começar
- Tenha uma conversa existente no workspace desejado. Veja primeira conversa.
- Escolha um PDF que você tem autorização para compartilhar e confirme se ele atende aos limites da API de arquivos.
- Mantenha a chave de API do Bridge no servidor. Não a acrescente à requisição de upload pré-assinada.
- Escolha explicitamente o sinalizador
enableExternalBroadcastda mensagem.
Valide o arquivo antes de solicitar um upload
Verifique o arquivo real no seu servidor: a extensão, o tipo MIME e o tamanho em bytes devem cumprir as regras publicadas da API de arquivos. A requisição de URL pré-assinada contém metadados e um checksum, não os bytes do arquivo nem um campo de tamanho. Uma resposta201 prepara um upload; não comprova que os bytes reais foram inspecionados, que o tamanho enviado cumpre os limites publicados ou que um provedor de mensagens aceitará o arquivo.
Se você omitir contentType, ainda assim copie presignUrl.headers para a requisição PUT: a Bridge pode deduzir Content-Type pelo nome do arquivo. Se o informar, use o tipo MIME do arquivo real e mantenha-o coerente com fileType e a extensão. Renomear um arquivo não converte seu conteúdo.
Após um PUT bem-sucedido, o processamento do upload ainda pode estar pendente. Se uma requisição de Message retornar um erro de upload de arquivos, preserve o erro completo e confira a etapa que falhou antes de decidir se outra gravação é segura.
Sequência de upload
O checksum é o digest SHA-256 de todos os bytes do arquivo, codificado em Base64. Não é um digest hexadecimal nem o hash do nome do arquivo.
Exemplo completo no servidor
Use Node.js comfetch nativo. Salve como send-attachment.mjs. Defina BRIDGE_API_KEY, BRIDGE_WORKSPACE_ID, BRIDGE_CONVERSATION_ID, ATTACHMENT_PATH e ENABLE_EXTERNAL_BROADCAST (true ou false).
Preserve a requisição de upload
UsepresignUrl.url sem reconstruir o host, o caminho ou a query string. Use o método e os cabeçalhos obrigatórios retornados. O contrato define PUT como método padrão quando o campo é omitido, e a API de arquivos exige x-amz-checksum-sha256 com o mesmo checksum enviado ao Bridge.
O upload envia os mesmos bytes usados para calcular o checksum. Não converta o PDF em texto, não o encapsule em JSON e não envie uma cópia diferente após calcular o hash.
Para vários arquivos, preserve a associação entre cada mediaId retornado, os dados pré-assinados e o arquivo correspondente. Conclua todos os uploads necessários antes de anexar os IDs a uma mensagem.
Algumas mídias precisam de mais preparação após o upload, como copiar o arquivo, gerar uma prévia, converter ou enviar o arquivo ao provedor de mensagens. Essas etapas podem falhar de forma independente. Um PUT bem-sucedido ou uma resposta 201 ao criar a mensagem não comprovam que o processamento ou a entrega pelo provedor foram concluídos. Mantenha o arquivo original e os identificadores recebidos para correlacionar o resultado antes de repetir uma requisição de mensagem.
Trate uma falha em cada etapa
- O Bridge rejeita a solicitação de arquivo: confira extensão,
fileType, tipo de conteúdo, tamanho e checksum na referência. - O upload falha: pare antes de criar a mensagem. Verifique URL, método, cabeçalhos, checksum e bytes exatos. Não presuma um prazo de validade ou uma política de novas tentativas que a resposta não informe.
- A requisição de mensagem falha ou expira: um arquivo enviado não comprova a existência de uma mensagem. Verifique o resultado antes de repetir a requisição de mensagem.
STICKER e WEBSITE aparecem no enum FileType, mas a tabela pública de upload não especifica suas regras de extensão, MIME e tamanho. Confirme essas regras antes de escolher qualquer um deles para uma integração.
Veja a API de arquivos, a API de mensagens e o guia de respostas e erros.
