將 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 應用程式收到的每個 MESSAGEADDED_TO_SPACE 互動事件也包含 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