Almacenamiento de sesión

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"