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 的基本流程如下:
- 你的動作會要求使用者提供 Google 個人資料的同意。
- 使用者提供同意聲明後,您的動作會收到包含使用者 Google 個人資料資訊的 Google ID 憑證。
- 驗證並解碼以讀取個人資料內容。如果您使用適用於 Actions.js 的 Actions on Google Fulfillment 程式庫,就會為您驗證憑證並解碼。
您的操作會使用這個憑證來檢查系統中是否存在使用者的 Google 個人資料資訊。
- 如果是的話,表示使用者已經使用自己的 Google 帳戶登入您的系統。使用者可以透過與 Google 帳戶相連結的身分來與 Google 助理繼續對話。
如果沒有,使用者可以使用 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 帳戶。
在此案例中,由於使用者才剛接觸這項服務,因此使用者沒有其他訂單,因此您的動作會詢問他們想訂購的商品。您也可以詢問使用者是否想將最新訂單設為正常順序。