適用於 Google 助理的 Google 登入 (GSI) 機制提供最流暢的連結 也是開發人員最容易實作的流程。 有了 GSI,您的動作可在以下期間要求存取使用者的 Google 個人資料 對話,並在使用者同意後接收使用者名稱和電子郵件地址。 和個人資料相片你的動作就能根據這項資訊來檢查 使用者在系統中擁有 Google 帳戶。如果不是,您的動作會詢問使用者是否 他們想要根據您的 Google 個人資料內容
如果符合下列任一情況,則建議使用 GSI 做為帳戶連結解決方案:
- 您本身沒有驗證系統,且/或希望您的 使用者必須擁有 Google 帳戶。舉例來說,如果您的動作 您就能在任何 Google Cloud 產品與服務中 帳戶。
- 您已經有驗證系統,且想要連結 使用個人 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 的基本流程如下:
- 您的動作要求使用者同意存取其 Google 個人資料。
- 使用者提供同意聲明後,您的動作會收到 Google ID 權杖。 包含使用者的 Google 個人資料資訊。
- 驗證權杖並解碼,以便讀取個人資料內容。如果您使用 Actions on Google Fulfillment 程式庫適用於 Node.js, 就會為您驗證符記並加以解碼
你的動作會使用這個權杖檢查使用者的 Google 個人資料 才是有效的資訊
- 如果有,表示使用者已使用 Google 帳戶。使用者可以繼續與以下對話 Google 助理,會將孩子的身分與他們的 Google 帳戶連結。
如果沒有的話,使用者可以使用 Google ID 權杖包含的資訊這樣一來,使用者就能 繼續與已連結 Google 助理對話。
Google 登入流程
本節說明使用 Google 登入功能可能發生的各種流程。
流程 1:使用者資訊存在於系統中
下圖顯示使用 GSI 時發生的 使用者的資訊已存在於您的系統中:
在此情況下,您將轉換至帳戶連結系統情境 客製化的理由在這個場景中,系統會要求使用者授予權限 存取自己的 Google 個人資料。
使用者同意後,Google 助理會傳送內含
user@gmail.com
的個人資料資訊。在本例中
包含在 user@gmail.com
的 Google ID 權杖中,與
系統因此,動作會自動連結使用者在動作中的身分
。這樣一來,您的 Webhook 就能透過
並提供相應回應
流程 2:使用者資訊不存在於您的系統中
下圖顯示使用 GSI 時發生的 使用者的資訊不存在在您的系統中:
在此情況下,Google ID 權杖所含資訊
「user@gmail.com
」與系統中的帳戶不相符,因此 Google 助理
詢問使用者是否要建立新帳戶。使用者可以完成
使用語音建立帳戶,不用將帳戶轉給對方
遭到過濾的裝置。
如果使用者同意建立帳戶,您的服務就會使用 建立專屬帳戶 使用者。建立帳戶之後,使用者在動作中看見的身分 並連結至新的 Google 帳戶。
在此情況下,使用者沒有平常的訂單,因為他們才剛前往 服務,因此你的動作詢問他們想要訂購什麼餐點。個人中心 也可以詢問使用者是否要設定最近的訂單 他們會像往常一樣排序