Como podemos ajudar?

06. Configurando a integração com API externa
3 min
Criado por Humanz em 03/06/2022 12:30
Atualizado por Ligia Sarmento em 29/11/2024 11:12

Neste artigo, você verá como integrar o seu chatbot com uma API. Para isso, é preciso criar um novo passo com a integração Json API.

Configurando o passo com Json API

  1. Acesse a plataforma Zenvia: Produtos > Zenvia Bots > Criar novo fluxo ou Editar um já existente.

  2. No fluxo escolhido, clique no + para Criar novo passo.

  3. Na tela que se abrir, selecione a opção Json API.

⚠️ Atenção: A integração só funciona com APIs que retornam JSON. Não são aceitos caracteres especiais nos parâmetros (ex.: $). Caso precise utilizá-los, insira aspas simples no valor ('$param1') ou inclua diretamente na URL.

gif-bots-07-min.gif

bots-02.png

bots-03.png

Exemplo de configuração com o método GET

Utilizaremos a API pública HG Weather para consultar o clima na cidade do usuário.

  • Configure a URL e os parâmetros que serão enviados.

  • Armazene a resposta da API em uma variável. Por exemplo: a descrição do clima será salva na variável clima_atual e alimentada pelo campo response.results.description do retorno da API.

bots-03.png
apiexterna-4.png

Utilização das variáveis no chatbot

Adicione um novo passo de Mensagem do chatbot e insira as variáveis no formato:
#{nome_da_variável}
bots-4.png

Exemplo de uso do array como retorno de API

Se você está tentando manipular um array e enfrentando dificuldades, confira as orientações a seguir.

No Zenvia Bots, que utiliza Java, arrays devem ter um tipo definido e conter valores do mesmo tipo. Não é possível inicializar objetos diretamente, mas apenas manipular os retornados pela API.

Caso prático:

  • Criando o array:

    • Nome: BoletosVencidos

    • Expressão: new Object[3] (representa um array com 3 posições; ajuste conforme necessário).

  • Processando os dados:
    Do array retornado pela API (TodosOsBoletos), extraímos dados específicos e os adicionamos ao array criado:
    Expressão:
    BoletosVencidos[0] = TodosOsBoletos[PosicaoBoleto]

  • Utilizando o array:
    Na mensagem do sistema, exiba uma informação ao usuário:
    Mensagem:
    "Boleto disponível: #{BoletosVencidos[0].vencimento}"

Explicação adicional sobre new Object[3]

A expressão new Object[3] cria um array de 3 posições para armazenar objetos. Substitua "3" pelo número necessário de elementos. No exemplo acima, cada posição representa um boleto.

Boas práticas:

  • Use nomes de variáveis claros e intuitivos (ex.: BoletosVencidos, DadosUsuario).

  • Teste o fluxo para verificar se os dados estão sendo armazenados e exibidos corretamente.

Dificuldades frequentes na integração com API externa

  • Erro ao imprimir valores não-textuais:
    Certifique-se de converter números ou outros tipos para texto com .toString() antes de exibi-los (ex.: #{variavel.toString()}).

  • Formatação do destinatário:
    Não insira + no número do destinatário na chamada de API, pois isso pode gerar inconsistências.

  • Erros no fluxo devido a campos inválidos no JSON:
    Remova campos como $oid retornados por APIs que causam erros no processamento.

Este artigo resolveu sua dúvida?
Últimos artigos visitados