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.
%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.
$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.
$
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.
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.
Por exemplo, para salvar o valor quoteText
em uma nova variável, você precisa especificar $httpResponse.quoteText
como o valor da variável.
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
a299
inclusive. - Erro se o servidor retornar qualquer outra resposta.
$httpStatus
.