Trilha Avançada
Enviando e recebendo arquivos
1. Entendendo sobre o uso de arquivos no chatbot
É possível utilizar arquivos anexos em uma conversa com o chatbot das seguintes formas:
-
Receber um arquivo anexado na conversa: permite que os usuários enviem arquivos durante a conversa com o chatbot. Quando um usuário envia um arquivo, o chatbot receberá e poderá processá-lo de acordo com a lógica da sua programação. Além disso, os arquivos recebidos podem ser acessados por sistemas externos para realizar alguma tarefa.
-
Enviar arquivos para o usuário: permite que o chabot envie arquivos para os usuários diretamente na conversa. O arquivo pode estar disponível em uma URL pública na Internet ou o chatbot pode acessar um sistema externo para obter o arquivo e enviar para o usuário de forma privada.
2. Habilitar a opção no Canal
É necessário habilitar a opção no canal correspondente. Atualmente, apenas os canais Web e WhatsApp estão aptos a receber arquivos.
-
Acessar o chatbot que deseja editar.
-
No menu lateral, acionar CANAIS.
-
Selecionar o canal Web.
-
Localizar o grupo de configurações CAIXA DE ENTRADA.
-
Ativar a opção Exibir botão de anexar arquivo.
Atenção! No canal WhatsApp, o envio de arquivos está sempre habilitado.
3. Receber arquivo anexado na conversa
-
No menu lateral, acionar MOTORES DE CONVERSAÇÃO.
-
Na página Motores de conversação, acionar a opção NOVO MOTOR.
-
Escolher o motor Rivescript e clicar em Criar.
-
Escrever um nome para o motor, por exemplo, Receber anexo.
-
Criar as regras no campo Regras, por exemplo:
+ anexo - Por favor, envie o arquivo. {topic=esperaarquivo} > topic esperaarquivo + * * <get sb_uploaded_file_key> == undefined => Por favor, envie o arquivo ou escreva "desistir". - Recebi o seu arquivo! {topic=random} + desistir - OK! {topic=random} < esperaarquivo
4. Acessar arquivos recebidos
Quando uma mensagem do usuário contém um anexo, o arquivo fica armazenado temporariamente na plataforma durante 24 horas.
-
Para acessar os arquivos enviados pelos usuários, o Serprobots disponibiliza os seguintes endpoints:
Listar os arquivos da conversa:
GET https://serprobots.estaleiro.serpro.gov.br/web/<id do chatbot>/api/files/<id da conversa>/user
Baixar um arquivo da conversa:
GET https://serprobots.estaleiro.serpro.gov.br/web/<id do chatbot>/api/files/<id da conversa>/user/<chave do arquivo>
Esses endpoints exigem a presença do cabeçalho
Authorizaton: Bearer <token>
informando o token de sessão autenticada.
Atenção! As variáveis necessárias para a utilização dos endpoints estão descritas em Palavras reservadas
5. Enviar arquivo público para o usuário
No motor Perguntas e Respostas:
-
Selecionar a opção Gerenciar Conversas.
-
Acionar a opção NOVA PERGUNTA ou selecionar Editar Pergunta em alguma pergunta já existente.
-
No grupo de RESPOSTAS, incluir resposta tipo Arquivo.
-
Informar o Endereço do arquivo e opcionalmente um Nome customizado e uma Descrição.
Nos demais motores:
-
Utilizar a sintaxe:
#file|public|<endereco do arquivo>|<nome customizado (opcional)>|<descrição (opcional)>
Exemplos:
#file|public|https://site.com/123456.pdf #file|public|https://site.com/123456.pdf|documento.pdf #file|public|https://site.com/123456.pdf|documento.pdf|Segue o documento desejado. #file|public|https://site.com/123456.pdf||Segue o documento desejado.
Atenção! No motor Watson Assistant, ao escrever a sintaxe num campo texto, utilizar uma barra invertida \ antes do símbolo #.
Por exemplo:
\#file|public|https://site.com/arquivo.pdf
6. Enviar arquivo privado para o Serprobots
Em determinado ponto da conversa, o chatbot aciona um Sistema Externo através de webhook. O Sistema Externo precisa realizar o upload seguro de um arquivo para o Serprobots.
-
Enviar o arquivo privado para o Serprobots por meio do endpoint do tipo multipart/form-data:
POST https://serprobots.estaleiro.serpro.gov.br/web/<id do chatbot>/api/files/<id da conversa>/chatbot
Esse endpoint exige a presença do cabeçalho
Authorizaton: Bearer <token>
informando o token de sessão autenticada e possui as seguintes partes:- file: caminho para o arquivo.
- fileName: nome do arquivo para o Serprobots.
- fileMimeType: tipo MIME do arquivo.
- caption: texto descrevendo o arquivo (opcional).
Por exemplo, em cURL:
curl -X POST 'https://d-serprobots.estaleiro.serpro.gov.br/web/dbot-arquivos-d/api/files/conversation/9441ef30-5da6-4c79-ac9b-e5b827b5b876/user' \ --form 'caption="Estou te enviando meu documento";type=text/plain' \ --form 'file=@"/home/usuario/documento.pdf"' \ --form 'fileName="meetup.pdf";type=application/text' \ --form 'fileMimeType="application/pdf"'
7. Enviar arquivo privado para o usuário
-
Criar uma resposta textual em algum diálogo do motor desejado com a seguinte sintaxe:
#file|chatbot|<nome do arquivo privado>|<nome customizado (opcional)>|<descrição (opcional)>
Exemplo
#file|chatbot|meetup.pdf|documento.pdf|Segue o documento desejado.