本頁說明如何使用 Pub/Sub 建立 Chat 應用程式。如果貴機構有防火牆,可防止 Chat 傳送訊息至 Chat 應用程式,或是 Chat 應用程式使用 Google Workspace Events API,這類 Chat 應用程式架構就很實用。不過,由於 Chat 應用程式只能傳送及接收非同步訊息,因此這個架構有以下限制:
下圖顯示使用 Pub/Sub 建構的 Chat 應用程式架構:
在上圖中,使用者與 Pub/Sub Chat 應用程式互動時,資訊會按照以下流程傳送:
使用者在 Chat 中傳送訊息給 Chat 應用程式,無論是透過即時訊息或 Chat 聊天室,或是在 Chat 應用程式有有效訂閱的 Chat 聊天室中發生事件。
Chat 會將訊息傳送至 Pub/Sub 主題。
應用程式伺服器 (含有 Chat 應用程式邏輯的雲端或內部系統) 會訂閱 Pub/Sub 主題,以便透過防火牆接收訊息。
如有需要,Chat 應用程式可以呼叫 Chat API,以非同步方式發布訊息或執行其他作業。
必要條件
Java
- 具備 Google Chat 存取權的 Google Workspace 企業或進階版帳戶。
- 已啟用計費功能的 Google Cloud 專案。如要確認現有專案是否已啟用計費功能,請參閱「驗證專案的計費狀態」。如要建立專案及設定帳單,請參閱「建立 Google Cloud 專案」。
- Java 11 以上版本
- Maven 套件管理工具
Python
- 具備 Google Chat 存取權的 Google Workspace 企業或進階版帳戶。
- 已啟用計費功能的 Google Cloud 專案。如要確認現有專案是否已啟用計費功能,請參閱「驗證專案的計費狀態」。如要建立專案及設定帳單,請參閱「建立 Google Cloud 專案」。
- Python 3.6 以上版本
- pip 套件管理工具
Node.js
- 具備 Google Chat 存取權的 Google Workspace 企業或進階版帳戶。
- 已啟用計費功能的 Google Cloud 專案。如要確認現有專案是否已啟用計費功能,請參閱「驗證專案的計費狀態」。如要建立專案及設定帳單,請參閱「建立 Google Cloud 專案」。
- Node.js 14 以上版本
- npm 套件管理工具
-
已初始化的 Node.js 專案。如要初始化新專案,請建立並切換至新資料夾,然後在指令列介面中執行下列指令:
npm init
設定環境
使用 Google API 前,您必須先在 Google Cloud 專案中啟用這些 API。您可以在單一 Google Cloud 專案中啟用一或多個 API。在 Google Cloud 控制台中啟用 Google Chat API 和 Pub/Sub API。
設定 Pub/Sub
建立 Chat API 可傳送訊息的 Pub/Sub 主題。建議您為每個 Chat 應用程式使用單一主題。
將 Pub/Sub 發布者 角色指派給下列服務帳戶,�授予 Chat 發布主題的權限:
chat-api-push@system.gserviceaccount.com
建立服務帳戶,讓 Chat 應用程式透過 Pub/Sub 授權,並將私密金鑰檔案儲存至工作目錄。
編寫指令碼
Java
在命令列介面中提供服務帳戶憑證:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
在 CLI 中提供 Google Cloud 專案 ID:
export PROJECT_ID=PROJECT_ID
在 CLI 中,提供先前建立的 Pub/Sub 訂閱項目的訂閱 ID:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
在工作目錄中建立名為
pom.xml
的檔案。在
pom.xml
檔案中貼上以下程式碼:在工作目錄中建立目錄結構
src/main/java
。在
src/main/java
目錄中建立名為Main.java
的檔案。在
Main.java
中貼上以下程式碼:
Python
在命令列介面中提供服務帳戶憑證:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
在 CLI 中提供 Google Cloud 專案 ID:
export PROJECT_ID=PROJECT_ID
在 CLI 中,提供先前建立的 Pub/Sub 訂閱項目的訂閱 ID:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
在工作目錄中建立名為
requirements.txt
的檔案。在
requirements.txt
檔案中貼上以下程式碼:在工作目錄中建立名為
app.py
的檔案。在
app.py
中貼上以下程式碼:
Node.js
在命令列介面中提供服務帳戶憑證:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
在 CLI 中提供 Google Cloud 專案 ID:
export PROJECT_ID=PROJECT_ID
在 CLI 中,提供先前建立的 Pub/Sub 訂閱項目的訂閱 ID:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
在工作目錄中建立名為
package.json
的檔案。在
package.json
檔案中貼上以下程式碼:在工作目錄中建立名為
index.js
的檔案。在
index.js
中貼上以下程式碼:
將應用程式發布到 Chat
在 Google Cloud 控制台中,依序前往「Menu」>「API 和服務」>「已啟用的 API 和服務」>「Google Chat API」>「設定」。
為 Chat 應用程式設定 Pub/Sub:
- 在「應用程式名稱」中輸入
Quickstart App
。 - 在「顯示圖片網址」中輸入
https://developers.google.com/chat/images/quickstart-app-avatar.png
。 - 在「Description」中輸入
Quickstart app
。 - 在「功能」下方,選取「接收一對一訊息」和「加入聊天室和群組對話」。
- 在「Connection settings」(連線設定) 下方,選取「Cloud Pub/Sub」,然後貼上先前建立的 Pub/Sub 主題名稱。
- 在「瀏覽權限」下方,選取「將這個 Google Chat 應用程式提供給網域中的特定使用者和群組」,然後輸入您的電子郵件地址。
- 在「記錄」下方,選取「將錯誤記錄至 Logging」。
- 在「應用程式名稱」中輸入
按一下 [儲存]。
應用程式已準備好接收及回覆 Chat 中的訊息。
執行指令碼
在 CLI 中切換至工作目錄並執行指令碼:
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
執行程式碼後,應用程式就會開始聆聽發布至 Pub/Sub 主題的訊息。
測試 Chat 應用程式
如要測試 Chat 應用程式,請使用 Chat 應用程式開啟即時訊息聊天室並傳送訊息:
使用您新增自己為信任測試人員時提供的 Google Workspace 帳戶,開啟 Google Chat。
- 按一下 「發起即時通訊」。
- 在「新增 1 位或多位使用者」欄位中,輸入 Chat 應用程式的名稱。
從搜尋結果中選取 Chat 應用程式,即時訊息會隨即開啟。
- 在與應用程式互傳的新即時訊息中,輸入
Hello
並按下enter
。
如要新增信任的測試人員,並進一步瞭解如何測試互動功能,請參閱「測試 Google Chat 應用程式的互動功能」。
疑難排解
當 Google Chat 應用程式或資訊卡傳回錯誤時,Chat 介面會顯示「發生錯誤」的訊息。或「無法處理您的要求」。有時 Chat UI 不會顯示任何錯誤訊息,但 Chat 應用程式或資訊卡會產生意外結果,例如資訊卡訊息可能不會顯示。
雖然 Chat UI 可能不會顯示錯誤訊息,但當您開啟 Chat 應用程式的錯誤記錄功能時,系統會提供說明性錯誤訊息和記錄資料,協助您修正錯誤。如需查看、偵錯及修正錯誤的相關說明,請參閱「排解及修正 Google Chat 錯誤」一文。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本教學課程中所用資源的相關費用,建議您刪除 Cloud 專案。
- 在 Google Cloud 控制台中前往「管理資源」頁面。依序按一下「選單」圖示 >「IAM 與管理」 >「管理資源」。
- 在專案清單中選取要刪除的專案,然後按一下「刪除」圖示 。
- 在對話方塊中輸入專案 ID,然後按一下「Shut down」(關閉) 即可刪除專案。
相關主題
如要為 Chat 應用程式新增更多功能,請參閱以下內容: