選擇 Google Chat 應用程式架構

本頁說明常見的服務架構做法 建立 Google Chat 應用程式。如要使用現有的應用程式 整合到 Google Chat,您就能使用或調整現有的實作方式。 如果您正在建構新的 Chat 應用程式,這個頁面會顯示 以協助您選擇架構 就可以選擇符合需求的選項:

功能與功能總覽

下表重點說明 即時通訊應用程式和推薦使用 () 服務架構樣式。 在某些情況下,如要開發另一種架構樣式,請使用 但就不適合其他情境下 樣式 ()。

功能與機制

網路或 HTTP 服務

Pub/Sub

Webhook

Apps Script

AppSheet

Dialogflow

指令碼

目標觀眾

你的球隊

貴機構

一般大眾

使用者互動

使用自然語言處理

訊息模式

收發同步訊息

收發同步訊息,以及傳送非同步訊息

僅傳送非同步訊息

從外部系統傳送訊息至單一 Chat 聊天室

存取其他服務和系統

與其他 Google 服務整合

在防火牆後進行通訊

查詢或訂閱 Chat 事件

程式設計和部署樣式

無需程式碼即可進行開發

使用少量程式碼進行開發

使用您選擇的程式設計語言進行開發

簡化開發運作

完成開發運作和 CI/CD 管理

服務架構樣式

本節將說明最常見的架構方法,以用於 建立即時通訊應用程式。

網路或 HTTP 服務

網頁或 HTTP 服務是最常部署的架構,因為 可讓開發人員以最彈性的方式建立公開的 Chat 擴充應用程式。此架構建議用於下列情況 用途

  • Chat 應用程式會公開部署至 Google Workspace Marketplace
  • Chat 應用程式可以收發所有訊息 模式:收發同步訊息、以非同步方式傳送 以及透過外部系統傳送郵件等資料。
  • Chat 應用程式是用任何一種程式開發而成 語言。
  • Chat 應用程式需要完整的開發運作和 CI/CD 以自動化做法管理成本
  • Chat 應用程式服務是在雲端或 地端部署伺服器

在此設計中,您要將 Chat 與 透過 HTTP 遠端服務執行遠端服務,如下圖所示:

使用地端部署伺服器中的網路服務的 Chat 應用程式架構。

在上圖中,使用者與 HTTP Chat 應用程式提供以下資訊流:

  1. 使用者在 Chat 聊天室中傳送訊息給 Chat 應用程式。
  2. HTTP 要求會傳送到 含有 Chat 應用程式的地端部署系統 邏輯。
  3. 您也可以選擇與 Chat 應用程式邏輯互動 例如專案管理系統或 票務工具
  4. 網路伺服器將 HTTP 回應傳回給 Chat 中的即時通訊應用程式服務。
  5. 回應會傳送給使用者。
  6. Chat 應用程式也可以視需要呼叫 透過 Chat API 以非同步方式發布訊息或執行其他 作業。

這個架構讓您可以靈活運用現有程式庫, 系統中現有的元件 即時通訊應用程式可以使用不同的程式設計語言設計。 實作這個架構的方法有很多種。在 Google Cloud 上 可以使用 Cloud Functions、Cloud Run 和 App Engine如要開始使用,請參閱 建構 Google Chat 應用程式

Pub/Sub

如果 Chat 應用程式是在防火牆的保護下實作, Chat 無法呼叫 HTTP 呼叫。其中一種做法是 Pub/Sub至 啟用 Chat 應用程式導入功能,就能訂閱 包含 Chat 訊息的主題。Pub/Sub 為非同步作業 區分透過服務產生訊息的服務 處理這些訊息此架構建議用於下列情況 用途

  • Chat 應用程式是採用防火牆設計,
  • Chat 應用程式 會收到與 Chat 聊天室相關的事件
  • Chat 應用程式已部署至貴機構。
  • Chat 應用程式可以同步傳送及接收檔案 訊息,並可以傳送非同步訊息。
  • Chat 應用程式是用任何一種程式開發而成 語言。
  • Chat 應用程式需要完整的開發運作和 CI/CD 以自動化做法管理成本

下圖顯示 使用 Pub/Sub 建構的即時通訊應用程式:

透過 Pub/Sub 實作的 Chat 應用程式架構。

在上圖中,使用者與 Pub/Sub 互動 Chat 應用程式提供以下資訊流:

  1. 使用者在 Chat 中傳送訊息給 透過即時訊息或 Chat 聊天室或 Chat 聊天室中活動 處於使用中狀態的應用程式 subscription

  2. Chat 會將訊息傳送至 Pub/Sub 主題。

  3. 應用程式伺服器,可以是雲端或地端部署系統 包含 Chat 應用程式邏輯,訂閱 Pub/Sub 主題,以便透過防火牆接收訊息。

  4. Chat 應用程式也可以視需要呼叫 透過 Chat API 以非同步方式發布訊息或執行其他 作業。

如要開始使用,請參閱 使用 Pub/Sub 做為 Chat 應用程式的端點

Webhook

你可以建立只能傳送訊息的 Chat 擴充應用程式 透過通話與 Chat 聊天室對話 Webhook 網址。此架構建議用於下列用途:

  • Chat 應用程式已部署至您的團隊。
  • Chat 應用程式會從外部傳送訊息 單一 Chat 聊天室

採用這個架構時,Chat 應用程式 且使用者無法進行互動,例如 如下圖所示:

將非同步訊息傳送至 Chat 的連入 Webhook 架構。

在上圖中,Chat 應用程式的功能如下 資訊流通:

  1. Chat 應用程式邏輯會從 例如專案管理系統或 票務工具
  2. Chat 應用程式邏輯託管於雲端或 這個內部部署系統可以使用 Webhook 網址,將訊息傳送至 特定 Chat 聊天室。
  3. 使用者可在下列位置接收 Chat 應用程式的訊息: 特定 Chat 聊天室,但無法與 Chat 應用程式。

這類 Chat 擴充應用程式無法與其他應用程式共用 Chat 聊天室或其他團隊,無法發布至 Google Workspace Marketplace。建議您針對 用來回報快訊或狀態的 Chat 擴充應用程式,或 即時通訊應用程式原型。

如要開始使用,請參閱 使用 Webhook 傳送訊息至 Chat

Apps Script

您可以完全在以下位置建立 Chat 應用程式的邏輯: JavaScript。Google Apps Script 是少量程式碼的開發平台,適用於 Chat 擴充應用程式。Apps Script 會處理 驗證流程和 OAuth 2.0 權杖,以便進行使用者驗證。別擔心!您可以使用 Apps Script 用於建構公開的 Chat 擴充應用程式,但不提供 每日建議用量 配額與限制

此架構建議用於下列用途:

  • Chat 應用程式已部署至您的團隊 或貴機構
  • Chat 應用程式可以收發所有訊息 模式:收發同步訊息、以非同步方式傳送 以及透過外部系統傳送郵件等資料。
  • Chat 應用程式需要簡化的開發運作工作 以自動化做法管理成本

這個架構對於同樣整合的 Chat 應用程式來說很實用 與其他 Google Workspace 和 Google 服務共用,例如 Google 試算表、Google 簡報、Google 日曆、Google 雲端硬碟 Google 地圖和 YouTube,如 下圖:

使用 Apps Script 實作 Chat 應用程式的架構。

在上圖中,使用者與 Apps Script 互動 Chat 應用程式提供以下資訊流:

  1. 使用者 即時訊息或 Chat 聊天室中。
  2. 在應用程式中實作的 Chat 應用程式邏輯 位於 Google Cloud 中的 Apps Script 可接收 該訊息。
  3. 您也可以選擇與 Chat 應用程式邏輯整合 Google Workspace 服務,例如 Google 日曆 試算表或其他 Google 服務,例如 Google 地圖 或 YouTube。
  4. Chat 應用程式邏輯會將回應傳回 Chat 中的即時通訊應用程式服務。
  5. 回應會傳送給使用者。

如要開始使用,請參閱 使用 Apps Script 建構 Chat 擴充應用程式

AppSheet

你可以不使用程式碼,建立與網域共用的 Chat 應用程式 使用 AppSheet。如要簡化開發程序 建立常見的 Deployment 即時通訊應用程式動作。不過, Chat 應用程式不支援 AppSheet 網頁應用程式功能

此架構建議用於下列用途:

  • 系統已將 Chat 應用程式部署至您和團隊成員。
  • Chat 應用程式可以同步傳送及接收檔案 訊息,並可以傳送非同步訊息。
  • Chat 應用程式需要簡化的開發運作工作 以自動化做法管理成本

下圖顯示 使用 AppSheet 建構的即時通訊應用程式:

使用 AppSheet 實作 Chat 應用程式的架構。

在上圖中,使用者正在與 AppSheet 互動 Chat 應用程式提供以下資訊流:

  1. 使用者在 Chat 中傳送訊息給 透過即時訊息或 Chat 聊天室。
  2. 在應用程式中實作的 Chat 應用程式邏輯 AppSheet 位於 Google Cloud 中 撰寫新的電子郵件訊息
  3. 您也可以選擇與 Chat 應用程式邏輯整合 Google Workspace 服務,例如 Apps Script 以及在 Google 試算表中建立專案計畫
  4. Chat 應用程式邏輯會將回應傳回 Chat 中的即時通訊應用程式服務。
  5. 回應會傳送給使用者。

如要開始使用,請參閱 使用 AppSheet 建構 Chat 擴充應用程式

Dialogflow

您可以使用 Dialogflow 建立即時通訊應用程式。 自動化對話和動態回覆的自然語言平台 此架構建議用於下列用途:

  • Chat 應用程式可以同步傳送及接收檔案 訊息。
  • Chat 應用程式使用自然語言處理 回應及與使用者互動

下圖顯示 使用 Dialogflow 建構的即時通訊應用程式:

使用 Dialogflow 實作 Chat 應用程式的架構。

在上圖中,使用者與 Dialogflow 互動 Chat 應用程式提供以下資訊流:

  1. 使用者在 Chat 中傳送訊息給 透過即時訊息或 Chat 聊天室。
  2. Google Cloud 中的 Dialogflow 虛擬服務專員 並處理訊息以產生回應
  3. 視需要使用 Dialogflow Webhook Dialogflow 代理程式可與外部第三方服務互動,例如 做為專案管理系統或支援單工具使用
  4. Dialogflow 代理程式會將回應傳回 Chat 中的即時通訊應用程式服務。
  5. 系統會將回覆內容傳送至 Chat 聊天室。

如要開始使用,請參閱 建構 Dialogflow Google Chat 應用程式

指令列應用程式或指令碼

您可以建立命令列應用程式或是一個指令碼傳送 傳送至 Chat 或執行其他作業,例如建立 聊天室或聊天室成員管理工作,而不需將使用者直接存取 叫用或回覆 Chat 應用程式時使用: 。此架構建議用於下列用途 案件:

  • Chat 應用程式是用任何一種程式開發而成 語言。
  • Chat 應用程式只能傳送非同步訊息。

下圖顯示相關架構:

透過指令列應用程式或指令碼實作 Chat 應用程式的架構。

在上圖中,Chat 應用程式的 下列資料流:

  1. Chat 應用程式會呼叫 Chat API 來傳送 或執行其他作業
  2. Chat 會執行要求的作業。
  3. 視需要在 Chat 應用程式中顯示確認訊息: CLI

Chat 應用程式邏輯實作

Chat 不會限制您實作 Chat 應用程式邏輯。您可以建立固定語法指令 剖析器,使用先進的 AI 和語言處理程式庫或服務 來回應事件,甚至根據您的特定目標採取其他行動

處理使用者互動

Chat 應用程式可以 接收及回應使用者互動 多種用途使用者互動是指使用者採取的任何動作 叫用 Chat 應用程式或與 Chat 應用程式互動。

指令剖析器

指令導向的 Chat 擴充應用程式會檢查以下項目的酬載: Chat 應用程式互動事件、 然後從內容中擷取指令和參數舉例來說,請參閱 設定斜線指令,與 Chat 使用者互動

另一種方法是將訊息權杖化、擷取指令,然後 參考這個字典,將指令對應至每個指令的處理常式函式。

對話方塊式使用者介面

對話方塊型應用程式會回應 Chat 應用程式互動事件 以資訊卡為基礎的 對話: 使用者可以與 Chat 應用程式互動,例如 填寫表單 或是請求動作

每當使用者在對話方塊中執行動作時,新的互動事件就會是 傳送至 Chat 應用程式,開發人員只要更新 對話方塊或傳送訊息

自然語言處理

許多 Chat 擴充應用程式使用自然語言 來判定使用者的要求有許多方式 導入自然語言處理,而且可以選擇以自己偏好的方式導入自然語言處理 (NLP)。

您可以在 透過以下程式碼實作即時通訊應用程式: Dialogflow 西班牙文Dialogflow CX Chat 整合 透過這項服務,你可以建立虛擬服務專員,進行自動對話和動態調整 回應。

主動向 Chat 發出要求

即時通訊應用程式也可以傳送訊息或其他要求給以下對象: Chat 的直接互動不會觸發這類對話 。請改為 觸發事件,例如第三方應用程式或利用指令列 但無法與使用者互動 直接在 Chat 中使用 Chat 擴充應用程式。

非互動式的 Chat 擴充應用程式會使用 Chat API 傳送 或其他類型的要求向 Chat 發送要求。

對話模式

請思考您要為 Chat 應用程式提供何種功能 還可與使用者互動以下各節說明會介紹哪些對話模式 Chat 應用程式可能會實作的

呼叫和回應 (同步)

在同步呼叫和回應模式中, Chat 應用程式會透過以下方式回覆使用者傳送的訊息: 。使用者傳送給 Chat 應用程式的一則訊息 而是從 Chat 應用程式傳回一個回應,如 如下圖所示:

同步訊息的架構。

在上圖中,使用者與 Chat 應用程式提供以下資訊流:

  1. 使用者傳送同步訊息給 即時通訊應用程式,例如「我的下一場會議是什麼?」。
  2. Chat 應用程式傳送同步訊息給 使用者 — 例如:「Dr.Silva at 2:30"。

針對這種類型的對話模式,您可以實作 使用網路服務、Pub/Sub 或 Apps Script、AppSheet 或 Dialogflow。

多重回應 (非同步)

多重回應模式可能包含同步和非同步 訊息。此模式特性是藉由使用者之間的雙向通訊 Chat 應用程式,以及 產生任意數量額外訊息的即時通訊應用程式 如下圖所示:

非同步訊息的架構。

在上圖中,使用者與 Chat 應用程式提供以下資訊流:

  1. 使用者傳送同步訊息給 Chat 應用程式,例如「監控流量」。
  2. Chat 應用程式傳送同步訊息給 使用者以確認要求,例如「Monitoring on」。
  3. 之後,Chat 應用程式傳送一或多個非同步訊息 向使用者傳送訊息,例如呼叫 REST API,例如「新流量」。
  4. 使用者傳送其他同步訊息給 即時通訊應用程式,例如「忽略流量」。
  5. Chat 應用程式傳送同步訊息給 使用者確認要求 — 例如「Monitoring 已關閉」。

針對這種類型的對話模式,您可以實作 使用網路服務、Pub/Sub 或 Apps Script 或 AppSheet。

查詢或訂閱事件 (非同步)

採用非同步事件導向模式時,Chat 應用程式 這類事件會經由查詢 Chat API 或建立 訂閱 Chat 聊天室或使用者 Google Workspace 事件 API。事件代表 Chat 的異動 資源,例如有人張貼新訊息或加入聊天室時。 事件導向的 Chat 擴充應用程式 檢查事件酬載,取得已變更 Chat 的資料 相應資源進行回應

即時通訊應用程式可以接收多種事件,包括活動 聊天室、成員資格、訊息和回應。如果 Chat 應用程式透過查詢 或是透過有效訂閱項目存取 接著,即時通訊應用程式可以視需要產生任意數量的 方法是使用 Chat API。

您可以使用這類邏輯更新外部系統,例如支援單 或傳送訊息至 Chat 聊天室 非同步傳送訊息,例如在新使用者加入時傳送歡迎訊息 聊天室。

下圖為事件導向對話的範例 模式:

Chat 事件訂閱的架構

在上圖中,Chat 與 Chat 應用程式提供以下資訊流:

  1. Chat 應用程式會訂閱 Google Chat 聊天室。
  2. Chat 應用程式訂閱的聊天室 並輸入變更內容
  3. Chat 應用程式傳送活動給以下主題中的主題: Pub/Sub,會做為訂閱項目的通知端點。 事件包含資源中發生變更的相關資料。
  4. Chat 應用程式會處理 包含事件的 Pub/Sub 訊息並視需要採取行動。

針對這種類型的對話模式,您可以實作 使用 Pub/Sub (網路服務) 的即時通訊應用程式架構。 或 Apps Script

如需進一步瞭解如何接收及回應事件,請參閱 使用 Google Chat 中的活動

Chat 應用程式的單向訊息

如果是從 Chat 應用程式模式擷取的單向訊息, 即時通訊應用程式將非同步訊息傳送到 Chat 聊天室,但無法讓使用者直接與 Chat 應用程式。這個模式不屬於對話模式或 但非常適合用於鬧鐘報表等 下圖:

單向訊息的架構。

在上圖中,使用者所在的空間 Chat 應用程式提供以下資訊流:

  • Chat 應用程式傳送非同步訊息 方法是呼叫 Chat API 或發布至 Webhook 網址,例如「佇列溢位快訊」。
  • Chat 應用程式視需要傳送額外 非同步訊息。

針對這種類型的對話模式,您可以實作 使用網路服務、Webhook 的 Chat 擴充應用程式架構 Apps Script、AppSheet、指令列應用程式 或是指令碼

傳送至 Chat 應用程式的單向訊息

向使用者傳送 Chat 應用程式模式的單向訊息 傳送訊息給 Chat 應用程式 Chat 應用程式正在回應要求。 雖然技術上可行,但這樣會導致使用者不穩定 且強烈建議不要採用這種模式