Puedes almacenar los valores de los parámetros de un usuario específico dentro de una conversación en de sesiones de prueba. Luego, tu acción puede usar esos valores almacenados en las instrucciones. y condiciones, y tu código de webhook puede acceder a los valores en el almacenamiento de sesión para la conversación cuando sea necesario.
Durante una conversación, todos los datos recopilados con tipos se almacenan en la sesión
y almacenamiento de los datos. También puedes interactuar con los datos en el almacenamiento de sesión mediante llamadas de webhook.
Para las llamadas de webhook, el estado del almacenamiento de la sesión se pasa en un app.handle()
.
solicitud y se almacena en el objeto session
.
Los datos que se almacenan en el almacenamiento de la sesión caducan cuando finaliza una conversación.
Lee y escribe datos en el almacenamiento de sesión
Para actualizar o establecer un nuevo valor en el almacenamiento de sesión, asigna el valor al
Campo params
del objeto session
en una llamada de webhook. El siguiente ejemplo
establece "exampleColor". a "rojo" en el almacenamiento de sesión:
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 acceder a los datos almacenados en el almacenamiento de sesión, asígnalos a una variable en un webhook llamada. En el siguiente ejemplo, se recupera un valor de “exampleColor”. en sesión almacenamiento:
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 borrar un valor guardado anteriormente, establece el valor en null
en una llamada de webhook.
En el siguiente ejemplo, se borra el valor de “exampleColor”. en el almacenamiento de sesión:
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 } } }
Haz referencia a valores almacenados en instrucciones
Puedes hacer referencia a los valores almacenados en el almacenamiento de sesión mediante un mensaje. Para hacer referencia al
valor, usa la sintaxis $session.params.PARAMETER_NAME
, en la que
PARAMETER_NAME
es el nombre que se asigna en el webhook cuando el parámetro
se estableció.
Por ejemplo, antes almacenaste un valor de color en el almacenamiento de sesión como el
parámetro exampleColor
. Para acceder a ese valor en una instrucción, debes hacer referencia a ese
con $session.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $session.params.exampleColor." }] } }] }
Cómo hacer referencia a valores almacenados en las condiciones
También puedes hacer referencia a valores almacenados en el almacenamiento de sesión en condiciones. Para
hacer referencia al valor, usa session.params.PARAMETER_NAME
sintaxis, en la que PARAMETER_NAME
es el nombre dado en el webhook cuando
se configuró el parámetro.
Por ejemplo, antes almacenaste un valor de color en el almacenamiento de sesión como el
parámetro exampleColor
y quieres hacerla coincidir con el valor "rojo" en una
estado. En tu condición, debes hacer referencia al valor almacenado usando
session.params.exampleColor
La expresión de condición se ve así:
Sintaxis de las condiciones
session.params.exampleColor == "red"