Pular para o conteúdo principal

Bloco Solicitação HTTP

Você pode usar o bloco Solicitação HTTP para trocar dados com recursos externos e salvá-los em variáveis.

Parâmetros

Para adicionar o bloco ao script, selecione Solicitação HTTP no menu de blocos.

Configure os parâmetros necessários:

  • Selecione o método para sua solicitação:
    • GET (por padrão)
    • POST
    • DELETE
    • PUT
  • Especifique o URL de solicitação.

Além disso, você pode preencher as guias RESPONSE, BODY e HEADERS.

URL

O bot usará o URL especificado para enviar e receber dados.

Você pode adicionar variáveis a um URL das seguintes maneiras:

  • https://example.com?query=${varname}
  • https://${varname}/endpoint
  • ${varname} (se você armazenar o URL inteiro na variável)

Aqui, varname é um nome de variável.

cuidado
Chaves são necessárias quando você adiciona variáveis ao URL. Se seu URL contiver chaves literais, substitua-as por %7B e %7D para as chaves esquerda e direita, respectivamente.

Para adicionar o texto da última entrada do cliente ao URL, especifique queryText como um nome de variável, por exemplo: https://example.com?query=${queryText}. O bot inserirá automaticamente seu valor no URL antes de executar a solicitação.

dica
$queryText é a variável do sistema que armazena a solicitação do usuário atual.

Dessa forma, por exemplo, você pode ler dados de diferentes Planilhas Google sem criar várias solicitações HTTP.

Cabeçalhos

Na guia HEADERS, você pode adicionar cabeçalhos de solicitação preenchendo os campos Cabeçalho e Valor.

Você também pode usar variáveis em cabeçalhos.

cuidado
Ao adicionar variáveis aos cabeçalhos, especifique-as sem chaves e adicione $ na frente dos nomes das variáveis.

Corpo da solicitação

Para todos os métodos de solicitação, você pode preencher o corpo da solicitação na guia BODY.

No corpo da solicitação, você pode especificar dados em qualquer formato (JSON, XML, texto simples) e usar variáveis.

No exemplo acima, o corpo da solicitação é um objeto JSON. O bot inserirá automaticamente os valores $age e $name no corpo da solicitação.

cuidado
Ao adicionar variáveis ao objeto JSON, leve em consideração que tipo de dados cada valor de variável possui.
Aqui, a variável $age é especificada sem aspas porque contém um número. A variável $name é especificada com aspas porque contém uma string.

Resposta

Na resposta, o servidor geralmente retorna dados que você pode analisar ou enviar aos clientes.

Na guia RESPONSE, você pode definir quais dados da resposta devem ser salvos nas variáveis.

Por exemplo, uma solicitação para o URL https://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en retorna o seguinte objeto JSON:

{
"quoteText": "Texto",
"quoteAuthor": "Autor",
"senderName": "Editor",
"senderLink": "Link do perfil",
"quoteLink": "Link para a citação no site"
}

Esse objeto JSON é armazenado na variável de sistema $httpResponse.

Para salvar dados de um campo específico da resposta, especifique:

  • O nome da variável na qual você deseja salvar os dados.
  • O valor da variável por meio da variável de sistema $httpResponse.

Se a solicitação for bem-sucedida, o bot criará as variáveis $quoteText e $quoteAuthor com os campos de resposta do servidor como valores.

httpResponse

O Tovie DialogStudio salva a resposta do servidor na variável de sistema $httpResponse.

Se a resposta do servidor estiver no formato JSON ou XML, o Tovie DialogStudio a converterá automaticamente em um objeto JavaScript que você pode processar com funções JavaScript.

dica
Você pode extrair dados de sua resposta acessando as propriedades do objeto necessárias.

Por exemplo, para salvar o valor quoteText em uma nova variável, você precisa especificar $httpResponse.quoteText como o valor da variável.

nota

Aqui, quoteText é o nome do campo que você precisa obter.

Se o servidor retornar uma string não JSON e não XML, essa string inteira será armazenada em $httpResponse sem nenhum processamento.

JavaScript

Ao criar variáveis, você pode usar expressões e funções JavaScript, bem como funções da biblioteca Underscore, o que facilita o trabalho com objetos e matrizes.

Por exemplo, o servidor retorna o seguinte objeto JSON como resposta:

{
"items": [
{
"name": "laranjas",
"price": 150
},
{
"name": "tangerinas",
"price": 200
}
]
}

Além disso, vamos supor que o bot tenha perguntado ao cliente qual fruta ele precisa e armazenado na variável $choice.

Para salvar o objeto de items em uma variável, você precisará da seguinte expressão JavaScript:

_.findWhere($httpResponse.items, {name: "$choice"})

A função procurará o item que corresponde ao valor $choice pelo campo de name.

Transições do bloco

O bloco Solicitação HTTP tem duas transições:

  • Sucesso se o servidor retornar uma resposta com o código no intervalo de 200 a 299 inclusive.
  • Erro se o servidor retornar qualquer outra resposta.
dica
O bot salvará o código de resposta na variável de sistema $httpStatus.