對話動作將於 2023 年 6 月 13 日淘汰。詳情請參閱對話動作停用

Google 登入概念指南

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

Google 助理的 Google 登入 (GSI) 能讓使用者享有最流暢的連結體驗,也是開發人員實作的最簡單流程。使用 GSI 時,您的操作可在對話期間要求存取使用者的 Google 個人資料,如果使用者同意,則會收到使用者的名稱、電子郵件地址和個人資料相片。您的操作即可使用這項資訊檢查使用者是否在您的系統中有 Google 帳戶。如果沒有,您的動作會詢問使用者是否希望根據使用者的 Google 個人資料資訊在系統中建立新帳戶。

只要符合以下任一情況,建議使用 GSI 這項帳戶連結解決方案:

  • 您沒有現有的驗證系統,且/或您預期所有使用者都擁有 Google 帳戶。舉例來說,如果您的動作特別指定 Google 助理,那麼所有使用者應該都有 Google 帳戶。
  • 您有一個現有的驗證系統,但只想連結透過自己的 Google 帳戶登入系統的使用者。

如要確認 GSI 是適合您的解決方案,請參閱選擇帳戶連結類型頁面。

重要詞彙

在瞭解 GSI 的運作方式之前,請先瞭解以下條款:

  • Google ID 憑證:經過簽署的宣告,含有使用者的 Google 基本個人資訊 (姓名、電子郵件地址和個人資料相片)。Google ID 憑證為 JSON Web Token (JWT)。

    以下是已解碼的權杖範例:

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token's expiration time
  "name": "Jan Jansen",
  "given_name": "Jan",
  "family_name": "Jansen",
  "email": "jan@gmail.com", // If present, the user's email address
  "locale": "en_US"
}
  • user.verificationStatus由系統設定的屬性,表示目前工作階段是否有已驗證的使用者。

  • user.accountLinkingStatus系統設定的屬性,表示目前工作階段中的使用者是否有已連結的身分。

  • 帳戶連結系統場景:這個預先定義的場景會導入帳戶連結確認流程,並且可針對特定用途加以自訂。

運作方式

GSI 的基本流程如下:

  1. 你的動作會要求使用者提供 Google 個人資料的同意。
  2. 使用者提供同意聲明後,您的動作會收到包含使用者 Google 個人資料資訊的 Google ID 憑證。
  3. 驗證並解碼以讀取個人資料內容。如果您使用適用於 Actions.js 的 Actions on Google Fulfillment 程式庫,就會為您驗證憑證並解碼。
  4. 您的操作會使用這個憑證來檢查系統中是否存在使用者的 Google 個人資料資訊。

    1. 如果是的話,表示使用者已經使用自己的 Google 帳戶登入您的系統。使用者可以透過與 Google 帳戶相連結的身分來與 Google 助理繼續對話。
    2. 如果沒有,使用者可以使用 Google ID 憑證中的資訊,在系統中建立新帳戶。使用者就能在連結新帳戶後繼續與 Google 助理對話。

Google 登入流程

本節說明 Google 登入可能發生的各種流程。

流程 1:使用者資訊存在於您的系統中

下圖顯示使用者系統中已有現有資訊時,GSI 發生的端對端流程:

在此情況下,您必須轉換至帳戶連結系統場景,並提供自訂原因。這個情境會要求使用者授予 Google 個人資訊的存取權。

使用者表示同意後,Google 助理會傳送包含 user@gmail.com 設定檔資訊的要求。在此情況下,user@gmail.com 的 Google ID 憑證中所含的資訊與系統中的帳戶相符,因此動作中的使用者身分會自動連結至該帳戶。接著,Webhook 就能從資料庫讀取使用者正常的訂單,並據此做出回應。

流程 2:系統中沒有使用者資訊

下圖顯示系統中沒有使用者資訊時,GSI 發生的端對端流程:

在此情況下,user@gmail.com 的 Google ID 憑證中所含的資訊與系統中的帳戶不相符,因此 Google 助理會詢問使用者是否要建立新帳戶。使用者可以使用語音完成帳戶建立程序,而不會轉移到經過篩選的裝置。

使用者同意建立帳戶時,您的服務會使用 ID 憑證中的資訊 (使用者名稱和電子郵件地址) 來為使用者建立帳戶。建立帳戶後,動作中的使用者身分就會連結至新的 Google 帳戶。

在此案例中,由於使用者才剛接觸這項服務,因此使用者沒有其他訂單,因此您的動作會詢問他們想訂購的商品。您也可以詢問使用者是否想將最新訂單設為正常順序。