Anda dapat menyimpan parameter value untuk pengguna tertentu dalam percakapan di penyimpanan sesi. Action Anda kemudian dapat menggunakan nilai yang disimpan tersebut nanti dalam perintah dan kondisi, dan kode webhook Anda dapat mengakses nilai dalam penyimpanan sesi untuk percakapan jika diperlukan.
Selama percakapan, semua data yang dikumpulkan menggunakan jenis akan disimpan di penyimpanan
sesi. Anda juga dapat berinteraksi dengan data di penyimpanan sesi menggunakan panggilan webhook.
Untuk panggilan webhook, status penyimpanan sesi diteruskan dalam permintaan app.handle()
dan disimpan dalam objek session
.
Data yang disimpan di penyimpanan sesi akan habis masa berlakunya saat percakapan berakhir.
Membaca dan menulis data ke penyimpanan sesi
Untuk memperbarui atau menetapkan nilai baru dalam penyimpanan sesi, tetapkan nilai ke kolom params
dari objek session
dalam panggilan webhook. Contoh berikut
menetapkan "exampleColor" ke "red" dalam penyimpanan sesi:
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 } } }
Untuk mengakses data yang disimpan di penyimpanan sesi, tetapkan ke variabel dalam panggilan webhook. Contoh berikut mengambil nilai dari "exampleColor" di penyimpanan sesi:
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 } } }
Untuk menghapus nilai yang disimpan sebelumnya, tetapkan nilai ke null
dalam panggilan webhook.
Contoh berikut menghapus nilai "exampleColor" dalam penyimpanan sesi:
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 } } }
Mereferensikan nilai yang disimpan dalam prompt
Anda dapat mereferensikan nilai yang disimpan dalam penyimpanan sesi di prompt. Untuk mereferensikan nilai, gunakan sintaksis $session.params.PARAMETER_NAME
, dengan PARAMETER_NAME
adalah nama yang diberikan dalam webhook saat parameter ditetapkan.
Misalnya, sebelumnya Anda menyimpan nilai warna di penyimpanan sesi sebagai
parameter exampleColor
. Untuk mengakses nilai tersebut dalam perintah, Anda mereferensikan nilai tersebut menggunakan $session.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $session.params.exampleColor." }] } }] }
Mereferensikan nilai yang disimpan dalam kondisi
Anda juga dapat mereferensikan nilai yang disimpan dalam penyimpanan sesi dalam conditions. Untuk mereferensikan nilai, gunakan sintaksis session.params.PARAMETER_NAME
, dengan PARAMETER_NAME
adalah nama yang diberikan dalam webhook saat parameter ditetapkan.
Misalnya, sebelumnya Anda menyimpan nilai warna di penyimpanan sesi sebagai
parameter exampleColor
, dan ingin mencocokkannya dengan nilai "red" dalam
kondisi. Dalam kondisi Anda, Anda mereferensikan nilai yang disimpan menggunakan session.params.exampleColor
. Ekspresi kondisi Anda akan terlihat seperti ini:
Sintaksis kondisi
session.params.exampleColor == "red"