本頁說明如何將 Google Chat 應用程式連結至 Google Chat 以外的服務或工具。雖然 Chat 應用程式本身功能強大,但通常會與其他系統搭配運作,並需要搭配應用程式才能連結帳戶、授權存取資料、顯示其他資料,或設定使用者偏好設定。
必要條件
已啟用互動功能的 Google Chat 應用程式。如要建立互動式 Chat 應用程式,請根據您要使用的應用程式架構,完成下列其中一個快速入門:- 使用 Google Cloud Functions 提供HTTP 服務
- Google Apps Script
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
向使用者要求 Chat 應用程式設定
如果完成要求需要額外設定,但無法直接在 Chat 應用程式中完成,請將設定網址傳回給使用者,做為一般回覆的一部分,或以私人形式呈現,如下所示:
{ "actionResponse": { "type": "REQUEST_CONFIG", "url": "CONFIGURATION_URL" } }
這會指示 Google Chat 向使用者顯示私人提示,其中 CONFIGURATION_URL
是使用者可點選的連結,可用於進行額外驗證、授權或設定。REQUEST_CONFIG
回應與一般回應訊息互斥。系統會忽略任何文字、資訊卡或其他屬性。
完成設定要求
Chat 應用程式收到的每個 MESSAGE
和 ADDED_TO_SPACE
互動事件也包含 configCompleteRedirectUrl
欄位。您必須在設定網址中編碼這個網址,才能在程序完成時使用。重新導向至這個網址,會向 Google Chat 傳送設定要求已完成的信號。
當 Chat 應用程式啟動時,流程取決於收到的特定訊息。在回覆 @app help
這類訊息時,Chat 應用程式應回覆訊息,而不需要額外設定。
當使用者成功重新導向至原始訊息中提供的 configCompleteRedirectUrl
時,Google Chat 會執行下列步驟:
- 清除向發起者顯示的提示。
- 將原始訊息轉換為公開訊息,讓聊天室的其他成員也能看到。
- 將原始訊息傳送至同一 Chat 應用程式。
訪問 configCompleteRedirectUrl
只會影響單一使用者訊息。如果使用者嘗試多次傳送訊息給 Chat 應用程式,因此收到多個提示,則點按特定提示並完成驗證和設定程序,只會影響該特定訊息。其他訊息則不會變更。
以這種方式重送 MESSAGE
互動事件時,該事件應與原始事件相同;不過,在某些情況下,MESSAGE
互動事件可能會有所不同。舉例來說,如果訊息同時提及 Chat app A 和 Chat app B,當 Chat app A 在與 Chat app B 進行驗證前以一般訊息回覆時,使用者就能編輯該訊息。在這個案例中,Chat app B 會在使用者完成驗證和設定後,收到已編輯的訊息文字。
在 Chat 外部驗證 Chat 使用者
在某些情況下 (例如要求 API 的 OAuth 授權),您的應用程式需要連結至 Chat 以外的網址,同時保留使用者身分。在這種情況下,使用 Google 登入保護目的地應用程式,是識別使用者的最佳做法。
使用登入期間核發的識別資訊權杖,取得使用者 ID。sub
宣告包含使用者的專屬 ID,可與 Google Chat 中的使用者 ID 建立關聯。
雖然這兩個 ID 不完全相同,但可以強制轉換。如要將 sub
要求的值強制轉換為 Google Chat users/{user}
,請在值前面加上 users/
。舉例來說,123
的聲明值等同於 Chat 應用程式訊息中的使用者名稱 users/123
。
相關主題
- 接收及回應使用者互動
- MyProfile 應用程式範例會使用 Google 登入回應中的 ID 權杖來識別使用者。