本頁面將說明如何使用 Pub/Sub。這類 Chat 應用程式採用的架構 可能會使 Chat 無法 正在傳送訊息到 Chat 應用程式 Chat 應用程式會使用 Google Workspace 事件 API。不過, 因為這類架構具有下列限制 即時通訊應用程式只能收發訊息 非同步郵件:
下圖顯示 使用 Pub/Sub 建構的即時通訊應用程式:
在上圖中,使用者與 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 Workspace 帳戶 Google Chat。
- 已啟用計費功能的 Google Cloud 專案。如要確認現有專案是否啟用了計費功能, 請參閱驗證 專案帳單狀態如要建立專案及設定帳單,請參閱 建立 Google Cloud 專案。
- Python 3.6 以上版本
- pip 套件管理工具
Node.js
- 企業或企業 具有存取權的 Google Workspace 帳戶 Google Chat。
- 已啟用計費功能的 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 傳送訊息建議您使用 單一主題。
授予 Chat 發布權限 將 Pub/Sub 發布者角色指派給以下項目,藉此建立主題 服務帳戶:
chat-api-push@system.gserviceaccount.com
建立服務帳戶 給 Chat 應用程式使用 Pub/Sub 授權 進行即時通訊,並將私密金鑰檔案儲存至工作目錄。
建立提取訂閱項目 新增至主題。
為訂閱項目指派 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
在 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
在工作目錄中,建立名為
requirements.txt
的檔案。在
requirements.txt
檔案中,貼上下列程式碼:在工作目錄中,建立名為
app.py
的檔案。在
app.py
中,貼上下列程式碼:
Node.js
在 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
在工作目錄中,建立名為
package.json
的檔案。在
package.json
檔案中,貼上下列程式碼:在工作目錄中,建立名為
index.js
的檔案。在
index.js
中,貼上下列程式碼:
將應用程式發布到 Chat
前往 Google Cloud 控制台中的「選單」 > API 與Services (服務) > 已啟用的 API 和Services (服務) > Google Chat API >「設定」。
設定 Pub/Sub 的 Chat 應用程式:
- 在「App name」(應用程式名稱) 中輸入
Quickstart App
。 - 在「顯示圖片」中輸入
https://developers.google.com/chat/images/quickstart-app-avatar.png
。 - 在「Description」(說明) 中輸入
Quickstart app
。 - 在「功能」下方,選取「接收 1:1 訊息」和「加入聊天室和群組對話」。
- 在「連線設定」下方,選取「Cloud Pub/Sub」並貼上 先前建立的 Pub/Sub 主題名稱
- 在「瀏覽權限」下方,選取「將這個 Google Chat 應用程式提供給網域中的特定使用者和群組」,然後輸入您的電子郵件地址。
- 在「記錄」底下,選取 [將錯誤記錄至 Logging]。
- 在「App name」(應用程式名稱) 中輸入
按一下 [儲存]。
應用程式已準備好在 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 應用程式,請開啟含有下列對話的即時訊息聊天室: 傳送訊息:
使用你使用的 Google Workspace 帳戶開啟 Google Chat (在您將自己新增為信任的測試人員時提供)。
- 按一下「新的即時通訊」圖示 。
- 在 [新增 1 或多位使用者] 欄位中,輸入你的使用者名稱 Chat 應用程式。
從搜尋結果中選取 Chat 應用程式。直接 訊息隨即開啟。
- 開啟與應用程式互傳的新即時訊息,輸入
Hello
,然後按下enter
。
如要新增信任的測試人員並進一步瞭解如何測試互動功能,請參閱 測試互動式功能, Google Chat 應用程式。
疑難排解
Google Chat 應用程式或 card 會傳回錯誤, 即時通訊介面顯示「發生錯誤」的訊息。 或「無法處理你的要求」。有時使用 Chat UI 不會顯示任何錯誤訊息,但 Chat 應用程式或 資訊卡產生非預期的結果例如資訊卡訊息 顯示。
雖然 Chat UI 中可能不會顯示錯誤訊息, 提供描述性錯誤訊息和記錄資料,協助您修正錯誤 。如需觀看說明, 偵錯及修正錯誤,請參閱 疑難排解並修正 Google Chat 錯誤。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取 但建議採用 Cloud 專案
- 在 Google Cloud 控制台中,前往「管理資源」頁面。按一下 選單 > IAM 與管理員 >「管理資源」。
- 在專案清單中選取要刪除的專案,然後按一下 刪除 。
- 在對話方塊中輸入專案 ID,然後按一下「Shut down」(關閉) 即可刪除 專案。
相關主題
如要為 Chat 應用程式新增更多功能,請參閱 包括: