本頁說明如何使用 Pub/Sub 建立 Chat 應用程式。這類 Chat 應用程式採用的架構 可能會使 Chat 無法 正在傳送訊息到 Chat 應用程式 Chat 應用程式會使用 Google Workspace 事件 API。不過, 因為這類架構具有下列限制 即時通訊應用程式只能收發訊息 非同步郵件:
下圖顯示使用 Pub/Sub 建構的 Chat 應用程式架構:
在上圖中,使用者與 Pub/Sub 互動 Chat 應用程式提供以下資訊流:
使用者在 Chat 中傳送訊息給 透過即時訊息或 Chat 聊天室或 Chat 聊天室中活動 處於使用中狀態的應用程式 subscription:
Chat 會將訊息傳送至 Pub/Sub 主題。
應用程式伺服器 (包含 Chat 應用程式邏輯的雲端或內部系統) 會訂閱 Pub/Sub 主題,以便透過防火牆接收訊息。
Chat 應用程式也可以視需要呼叫 透過 Chat API 以非同步方式發布訊息或執行其他 作業。
必要條件
Java
- 企業或企業 具有存取權的 Google Workspace 帳戶 Google Chat。
- 已啟用計費功能的 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 Cloud 專案中啟用這些 Google API,才能使用這些 API。 您可以在單一 Google Cloud 專案中啟用一或多個 API。在 Google Cloud 控制台中啟用 Google Chat API 和 Pub/Sub API。
設定 Pub/Sub
建立 Pub/Sub 主題 方便 Chat API 傳送訊息建議您使用 單一主題。
將 Pub/Sub 發布者 角色指派給下列服務帳戶,�授予 Chat 發布主題的權限:
chat-api-push@system.gserviceaccount.com
建立服務帳戶 給 Chat 應用程式使用 Pub/Sub 授權 進行即時通訊,並將私密金鑰檔案儲存至工作目錄。
編寫指令碼
Java
在 CLI 中,提供服務帳戶憑證:
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
。 - 在「功能」下方,選取「接收 1:1 訊息」和「加入聊天室和群組對話」。
- 在「連線設定」下方,選取「Cloud Pub/Sub」並貼上 先前建立的 Pub/Sub 主題名稱
- 在「瀏覽權限」下方,選取「將這個 Google Chat 應用程式提供給網域中的特定使用者和群組」,然後輸入您的電子郵件地址。
- 在「Logs」下方,選取「Log errors to 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 應用程式新增更多功能,請參閱以下內容: