Vous pouvez stocker les valeurs de paramètre d'un utilisateur spécifique au sein d'une conversation dans stockage par session. Votre action peut ensuite utiliser ces valeurs stockées dans les requêtes. et conditions, et votre code webhook peut accéder aux valeurs du stockage de session la conversation si nécessaire.
Au cours d'une conversation, toutes les données collectées à l'aide de types sont stockées dans
stockage. Vous pouvez également interagir avec les données stockées dans le stockage de session à l'aide d'appels webhook.
Pour les appels webhook, l'état du stockage de la session est transmis dans un app.handle()
.
requête et est stocké dans l'objet session
.
Les données stockées dans l'espace de stockage de la session expirent à la fin d'une conversation.
Lire et écrire des données dans l'espace de stockage de session
Pour mettre à jour ou définir une nouvelle valeur dans l'espace de stockage de session, attribuez la valeur au paramètre
Champ params
de l'objet session
dans un appel webhook. L'exemple suivant
définit "exampleColor" à "rouge" dans le stockage de session:
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 } } }
Pour accéder aux données stockées dans le stockage de session, attribuez-les à une variable dans un webhook . L'exemple suivant récupère une valeur de "exampleColor" en session stockage:
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 } } }
Pour effacer une valeur enregistrée précédemment, définissez la valeur sur null
dans un appel webhook.
L'exemple suivant efface la valeur de "exampleColor" dans le stockage de session:
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 } } }
Référencer des valeurs stockées dans les requêtes
Vous pouvez référencer des valeurs stockées dans le stockage de session dans une requête. Pour référencer
utilisez la syntaxe $session.params.PARAMETER_NAME
, où
PARAMETER_NAME
est le nom donné au webhook lorsque le paramètre
a été définie.
Par exemple, vous avez précédemment stocké une valeur de couleur dans le stockage de session en tant que
paramètre exampleColor
. Pour accéder à cette valeur dans une requête, vous la référencez
à l'aide de $session.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $session.params.exampleColor." }] } }] }
Référencer des valeurs stockées dans des conditions
Vous pouvez également référencer des valeurs stockées dans le stockage de session dans des conditions. À
référencer la valeur, utilisez session.params.PARAMETER_NAME
où PARAMETER_NAME
est le nom donné dans le webhook quand
le paramètre a été défini.
Par exemple, vous avez précédemment stocké une valeur de couleur dans le stockage de session en tant que
exampleColor
et vous souhaitez l'associer à la valeur "red" dans un
. Dans votre condition, vous référencez la valeur stockée
session.params.exampleColor
Votre expression de condition se présente alors comme suit:
Syntaxe de la condition
session.params.exampleColor == "red"