セッション ストレージ内の会話内の特定のユーザーのパラメータ値を格納できます。アクションは、保存された値を後でプロンプトや条件で使用できます。また、Webhook コードは、必要に応じて会話用のセッション ストレージの値にアクセスできます。
会話中、タイプを使用して収集されたデータは、セッション ストレージに保存されます。Webhook 呼び出しを使用して、セッション ストレージ内のデータを操作することもできます。Webhook 呼び出しの場合、セッション ストレージの状態は app.handle()
リクエストで渡され、session
オブジェクトに保存されます。
セッション ストレージに保存されているデータは、会話が終了すると期限切れになります。
セッション ストレージへのデータの読み取りと書き込み
セッション ストレージの値を更新または設定するには、Webhook 呼び出しの session
オブジェクトの params
フィールドに値を割り当てます。次の例では、セッション ストレージで「exampleColor」を「red」に設定しています。
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 } } }
セッション ストレージに保存されているデータにアクセスするには、Webhook 呼び出しで変数にそのデータを代入します。次の例では、セッション ストレージの「exampleColor」から値を取得しています。
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 } } }
以前に保存した値を消去するには、Webhook 呼び出しで値を null
に設定します。次の例では、セッション ストレージの「exampleColor」の値を消去します。
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 } } }
プロンプト内で保存済み値を参照する
セッション ストレージに保存されている値は、プロンプトで参照できます。値を参照するには、$session.params.PARAMETER_NAME
構文を使用します。ここで、PARAMETER_NAME
はパラメータの設定時に Webhook で指定される名前です。
たとえば、以前にパラメータ exampleColor
として色値をセッション ストレージに保存していました。プロンプトでその値にアクセスするには、$session.params.exampleColor
を使用してその値を参照します。
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $session.params.exampleColor." }] } }] }
条件内で保存された値を参照する
セッション ストレージに保存されている値をconditionsで参照することもできます。値を参照するには、session.params.PARAMETER_NAME
構文を使用します。ここで、PARAMETER_NAME
はパラメータの設定時に Webhook で指定される名前です。
たとえば、以前にパラメータ exampleColor
として色値をセッション ストレージに保存しており、それを条件で値「red」と照合する場合です。条件では、session.params.exampleColor
を使用して保存済み値を参照します。条件式は次のようになります。
条件の構文
session.params.exampleColor == "red"