在 Webhook 呼叫中,您可以在特定使用者儲存空間的工作階段中,儲存特定使用者的參數值。隨後,您的動作隨後可在提示和條件中使用這些儲存的值,而且 Webhook 程式碼可在需要時存取特定使用者的使用者儲存空間值。
使用者儲存空間的狀態會透過 app.handle()
要求傳遞,並儲存在 user
物件中。
讀取及寫入所有對話的資料
如要更新或設定使用者儲存空間中的新值,請在 Webhook 呼叫中,將值指派給 user
物件的 params
欄位。以下範例會將使用者儲存空間中的「exampleColor」設為「red」:
Node.js
// Assign color to user storage app.handle('storeColor', conv => { let color = 'red'; conv.user.params.exampleColor = color; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "user": { "locale": "en-US", "params": { "verificationStatus": "VERIFIED", "exampleColor": "red" } } } }
如要存取儲存在使用者儲存空間中的資料,請在 Webhook 呼叫中指派變數。以下範例會從使用者儲存空間中的「exampleColor」擷取值:
Node.js
// Retrieve color from user storage app.handle('getStoredColor', conv => { let color = conv.user.params.exampleColor; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "user": { "locale": "en-US", "params": { "verificationStatus": "VERIFIED", "exampleColor": "red" } } } }
如要清除先前儲存的值,請在 Webhook 呼叫中將這個值設為 null
。
以下範例清除使用者儲存空間中的「exampleColor」值:
Node.js
// Clear color from user storage app.handle('clearStoredColor', conv => { conv.user.params.exampleColor = null; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "user": { "locale": "en-US", "params": { "verificationStatus": "VERIFIED" } } } }
在提示內參照已儲存的值
您可以參照提示中儲存的使用者儲存空間值。如要參照值,請使用 $user.params.PARAMETER_NAME
語法,其中 PARAMETER_NAME
是設定參數時在 Webhook 中指定的名稱。
例如,您先前將顏色值儲存在使用者儲存空間內,參數為 exampleColor
。如要在提示中存取該值,請使用 $user.params.exampleColor
參照該值:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $user.params.exampleColor." }] } }] }
在條件中參照已儲存的值
也可以參考儲存在「條件」中使用者儲存空間的值。如要參照這個值,請使用 user.params.PARAMETER_NAME
語法,其中 PARAMETER_NAME
是設定參數時在 Webhook 中指定的名稱。
舉例來說,您先前曾將顏色值儲存為使用者儲存空間中的參數 exampleColor
,現在您想將其與條件中的「紅色」值進行比對。在條件中,請使用 user.params.exampleColor
參照儲存的值。條件運算式如下所示:
條件語法
user.params.exampleColor == "red"
使用者儲存空間資料過期
對於已驗證的使用者,儲存在使用者儲存空間中的資料會根據他們的「網路和應用程式活動」設定而過期,而且這些動作也可以清除。對於未經驗證的使用者,Google 助理會在對話結束時清除使用者儲存空間的內容。
Actions on Google 會在對話開始時,根據各種指標設定使用者的驗證狀態。舉例來說,使用者在行動裝置上登入 Google 助理時,驗證狀態會是 VERIFIED
。
使用者目前處於 GUEST
驗證狀態的可能原因如下:
- 使用者已關閉個人化搜尋結果。
- 使用者停用了網路和應用程式活動。請注意,部分使用者可能會在網域層級停用這項設定。
- 如果裝置已啟用 Voice Match 功能,且裝置配對失敗,或使用者不使用 Google 助理聲音 (例如長按 Nest Home 裝置),則會叫用 Google 助理。
- 使用者未登入。
務必先驗證使用者的驗證狀態,再將資料儲存在使用者儲存空間,以免訪客與失敗的功能互動。
向使用者顯示
身為使用者,您可以檢視叫用動作時儲存在使用者儲存空間中的資料。您也可以從特定操作移除使用者儲存的資料,或避免服務記住您的資訊。
如要查看已儲存的資料或停止讓服務記住您的資訊,請按照下列步驟操作:
- 前往 Google 助理目錄。
- 找出並選取要查看或清除使用者儲存空間的動作。
- 捲動至頁面底部:
- 如要查看使用者儲存空間的內容,請按一下「[查看已儲存的資料]」。
- 如要重設儲存在使用者儲存空間的服務資料,請按一下「重設」。
- 如要移除儲存在使用者儲存空間中的資料,並避免服務記住您的資訊,請按一下「Stop action_name for remembering」。