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

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

必要條件

已設定為接收及回應互動事件的 Google Chat 應用程式。如要建立互動式 Chat 應用程式,請根據要使用的應用程式架構,完成下列其中一個快速入門導覽課程:

要求使用者提供 Google Chat 應用程式設定

如果完成要求需要額外設定,但無法直接在 Google Chat 應用程式中完成,請在正常回覆中向使用者提供設定網址,或以私訊形式提供,格式如下:

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

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

完成設定要求

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

Chat 應用程式啟動時,流程取決於收到的特定訊息。如果收到「@app help」這類訊息,Chat 應用程式應回覆訊息,不需額外設定。

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

  1. 清除向發起使用者顯示的提示。
  2. 將原始訊息設為公開,讓其他聊天室成員查看。
  3. 再次將原始訊息傳送至同一個 Chat 應用程式。

造訪 configCompleteRedirectUrl 只會影響單一使用者訊息。 如果使用者多次嘗試傳送訊息給 Chat 應用程式,並因此收到多個提示,點選特定提示並完成驗證和設定程序,只會影響該則訊息。其他訊息不會變更。

以這種方式重新傳送 MESSAGE 互動事件時,該事件應與原始事件相同;不過,在某些情況下,MESSAGE 互動事件可能會有所不同。舉例來說,如果訊息同時提及 Chat 應用程式 A 和 Chat 應用程式 B,使用者在透過 Chat 應用程式 B 驗證身分前,如果 Chat 應用程式 A 先回覆一般訊息,使用者就能編輯訊息。在本例中,使用者完成驗證和設定後,聊天應用程式 B 會收到編輯後的訊息文字。

在 Chat 外部驗證 Chat 使用者

在某些情況下 (例如要求 API 的 OAuth 授權),應用程式需要連結至 Chat 以外的網址,同時維持使用者身分。在這些情況下,識別使用者的最佳方式是使用 Google 登入保護目標應用程式。

使用登入期間核發的身分識別權杖取得使用者 ID。sub 聲明包含使用者的專屬 ID,可與 Google Chat 的使用者 ID 建立關聯。

雖然這兩個 ID 並不完全相同,但可以強制轉換。如要將 sub 宣告的值強制設為 Google Chat users/{user},請在值前面加上 users/。舉例來說,123 的聲明值等同於傳送至 Chat 應用程式的訊息中的使用者名稱 users/123