將 Chat 應用程式與其他服務和工具連結

本頁說明如何將 Google Chat 應用程式連結至 Google Chat 以外的服務或工具。雖然 Chat 應用程式本身功能強大,但通常會與其他系統搭配運作,並需要搭配應用程式才能連結帳戶、授權存取資料、顯示其他資料,或設定使用者偏好設定。

必要條件

已啟用互動功能的 Google Chat 應用程式。如要建立互動式 Chat 應用程式,請根據要使用的應用程式架構,完成下列其中一個快速入門:

向使用者要求 Chat 應用程式設定

如果完成要求需要額外設定,但無法直接在 Chat 應用程式中完成,請將設定網址傳回給使用者,做為一般回覆的一部分,或以私人形式呈現,如下所示:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

這會指示 Google Chat 向使用者顯示私人提示,其中 CONFIGURATION_URL 是使用者可點選的連結,可用於進行額外驗證、授權或設定。REQUEST_CONFIG 回應與一般回應訊息互斥。系統會忽略任何文字、資訊卡或其他屬性。

完成設定要求

Chat 應用程式收到的每個 MESSAGE 互動事件也包含 configCompleteRedirectUrl 欄位。您必須在設定網址中編碼這個網址,才能在程序完成時使用。重新導向至這個網址,會向 Google Chat 傳送設定要求已完成的信號。

當 Chat 應用程式啟動時,流程取決於收到的特定訊息。在回覆 @app help 等訊息時,Chat 應用程式應回覆訊息,而不需要額外設定。

當使用者成功重新導向至原始訊息中提供的 configCompleteRedirectUrl 時,Google Chat 會執行下列步驟:

  1. 清除向發起者顯示的提示。
  2. 將原始訊息轉換為公開訊息,讓聊天室的其他成員也能看到。
  3. 將原始訊息傳送至同一 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