Você pode armazenar valores de parâmetro para um usuário específico em uma conversa no armazenamento por sessão. Sua Ação pode usar esses valores armazenados mais tarde nos comandos e condições, e o código do webhook pode acessar valores no armazenamento de sessão para a conversa quando necessário.
Durante uma conversa, todos os dados coletados usando types são armazenados na sessão
armazenamento. Também é possível interagir com os dados no armazenamento de sessão usando chamadas de webhook.
Para chamadas do webhook, o estado do armazenamento da sessão é transmitido em app.handle()
.
e é armazenada no objeto session
.
Os dados no armazenamento de sessão expiram quando uma conversa é encerrada.
Ler e gravar dados no armazenamento da sessão
Para atualizar ou definir um novo valor no armazenamento de sessão, atribua o valor ao
Campo params
do objeto session
em uma chamada de webhook. O exemplo a seguir
define "exampleColor" para "vermelho" no armazenamento de sessão:
Node.js
// Assign color to session storage app.handle('storeColor', conv => { let color = 'red'; conv.session.params.exampleColor = color; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": { "exampleColor": "red" } }, "prompt": { "override": false } } }
Para acessar os dados no armazenamento de sessão, atribua-os a uma variável em um webhook a chamada. O exemplo a seguir recupera um valor de "exampleColor" em sessão armazenamento:
Node.js
// Retrieve color from session storage app.handle('getStoredColor', conv => { let color = conv.session.params.exampleColor; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": { "exampleColor": "red" } }, "prompt": { "override": false } } }
Para limpar um valor salvo anteriormente, defina o valor como null
em uma chamada de webhook.
O exemplo a seguir limpa o valor de "exampleColor" no armazenamento de sessão:
Node.js
// Clear color from session storage app.handle('clearStoredColor', conv => { conv.session.params.exampleColor = null; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": {} }, "prompt": { "override": false } } }
Referenciar valores armazenados em prompts
É possível referenciar valores armazenados no armazenamento de sessão em um comando. Para fazer referência ao
, use a sintaxe $session.params.PARAMETER_NAME
, em que
PARAMETER_NAME
é o nome dado no webhook quando o parâmetro
foi definido.
Por exemplo, você armazenou anteriormente um valor de cor no armazenamento de sessão como o
parâmetro exampleColor
. Para acessar esse valor em um comando, você faz referência a esse
usando $session.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $session.params.exampleColor." }] } }] }
Fazer referência a valores armazenados em condições
Também é possível referenciar valores armazenados no armazenamento de sessão em conditions. Para
referenciar o valor, use o método session.params.PARAMETER_NAME
sintaxe, em que PARAMETER_NAME
é o nome dado no webhook quando
em que o parâmetro foi definido.
Por exemplo, você armazenou anteriormente um valor de cor no armazenamento de sessão como o
parâmetro exampleColor
, e você quer fazer a correspondência com o valor "red" em um
condição. Na condição, você faz referência ao valor armazenado usando
session.params.exampleColor
: Sua expressão de condição terá esta aparência:
Sintaxe da condição
session.params.exampleColor == "red"