使用者儲存空間

在 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 助理。
  • 使用者未登入。

務必先驗證使用者的驗證狀態,再將資料儲存在使用者儲存空間,以免訪客與失敗的功能互動。

向使用者顯示

身為使用者,您可以檢視叫用動作時儲存在使用者儲存空間中的資料。您也可以從特定操作移除使用者儲存的資料,或避免服務記住您的資訊。

如要查看已儲存的資料或停止讓服務記住您的資訊,請按照下列步驟操作:

  1. 前往 Google 助理目錄
  2. 找出並選取要查看或清除使用者儲存空間的動作。
  3. 捲動至頁面底部:
    • 如要查看使用者儲存空間的內容,請按一下「[查看已儲存的資料]」
    • 如要重設儲存在使用者儲存空間的服務資料,請按一下「重設」
    • 如要移除儲存在使用者儲存空間中的資料,並避免服務記住您的資訊,請按一下「Stop action_name for remembering」