Pular para o conteúdo principal
Para enviar um PDF ou outro anexo compatível, solicite um upload ao Bridge, envie os bytes do arquivo à URL retornada e crie uma mensagem com o 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 enableExternalBroadcast da 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 resposta 201 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 com fetch 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

Use presignUrl.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.