傳入的 Webhook 可讓您從非 Chat 應用程式的應用程式傳送非同步訊息至 Google Chat。舉例來說,您可以設定監控應用程式,在伺服器當機時,在 Google Chat 上通知值班人員。
如要透過 Chat 應用程式以非同步的方式傳送、更新或刪除訊息,請參閱「建立、讀取、更新及刪除訊息」一文。
必要條件
如要執行本指南中的範例,您需要:
Python
- Python 3.10.7 以上版本。
- 連線至網際網路和網路瀏覽器。
- 擁有可存取 Google Chat 的 Google Workspace 帳戶。
- 現有的 Google Chat 聊天室。
httplib2
程式庫。如有需要,請執行以下指令的指令列 (CLI) 指令使用 pip 安裝程式庫:pip install httplib2
Node.js
- 已安裝 Node.js 和 npm。
- 連線至網際網路和網路瀏覽器。
- 擁有可存取 Google Chat 的 Google Workspace 帳戶。
- 現有的 Google Chat 聊天室。
Apps Script
- 連線至網際網路和網路瀏覽器。
- 擁有可存取 Google Chat 的 Google Workspace 帳戶。
- 現有的 Google Chat 聊天室。
Java
- Java 11 以上版本。
- Apache Maven
- 連線至網際網路和網路瀏覽器。
- 擁有可存取 Google Chat 的 Google Workspace 帳戶。
- 現有的 Google Chat 聊天室。
建立 Webhook
如要建立 Webhook,請在要接收訊息的 Google Chat 聊天室中註冊 Webhook,然後撰寫可傳送訊息的指令碼。
步驟 1:註冊連入 Webhook
- 在網路瀏覽器中開啟 Google Chat。
- 前往要新增 Webhook 的聊天室。
- 在頂端的聊天室名稱旁邊,依序按一下「向下箭頭」圖示 >「應用程式與整合」。
- 按一下「管理 Webhook」。
- 如果這個聊天室已有其他 Webhook,請按一下「Add another」。否則請略過這個步驟。
- 在「名稱」部分輸入「quickstart Webhook」。
- 在「Avatar URL」(輸入圖片網址) 輸入
https://developers.google.com/chat/images/chat-product-icon.png
。 - 點選「儲存」。
- 如要複製完整的 Webhook 網址,請按一下「複製」 。
- 按一下方塊外的方塊,即可關閉「連入 Webhook」對話方塊。
步驟 2:編寫 Webhook 指令碼
Webhook 指令碼可將 Webhook 訊息張貼到 Webhook 網址,張貼建立訊息要求到 Webhook 註冊的聊天室中。Google Chat API 會透過 Message
的執行個體回應。
請在下方選擇語言,建立 Webhook 指令碼的具體操作說明:
Python
在工作目錄中,建立名為
quickstart.py
的檔案。複製並貼上
quickstart.py
中的下列程式碼:將
url
變數的值替換成您在步驟 1 中複製的 Webhook 網址:註冊傳入的 Webhook。
Node.js
在工作目錄中,建立名為
index.js
的檔案。複製並貼上
index.js
中的下列程式碼:將
webhookURL
變數的值替換成您在步驟 1 中複製的 Webhook 網址:註冊傳入的 Webhook。
Apps Script
前往 Apps Script 頁面。
按一下「New Project」。
複製及貼上下列程式碼:
將
url
變數的值替換成您在步驟 1 中複製的 Webhook 網址:註冊傳入的 Webhook。
Java
在工作目錄中,建立名為
pom.xml
的檔案。在
pom.xml
中複製及貼上下列程式碼:在工作目錄中,建立以下目錄結構
src/main/java
。在
src/main/java
目錄中,建立名為App.java
的檔案。複製並貼上
App.java
中的下列程式碼:將
URL
變數的值替換成您在步驟 1 中複製的 Webhook 網址:註冊傳入的 Webhook。
步驟 3:執行 Webhook 指令碼
在 CLI 中從工作目錄執行下列指令,執行範例:
Python
python3 quickstart.py
Node.js
node index.js
Apps Script
- 按一下「Run」。
Java
mvn compile exec:java -Dexec.mainClass=App
執行程式碼範例時,Webhook 會傳送訊息到您註冊的聊天室。
發起或回覆訊息串
您可以在 Webhook 網址中加入 threadKey
參數,藉此建立訊息串或回覆討論串。每個 threadKey
都與專門設定的應用程式有關。如果有兩個不同的即時通訊應用程式或 Webhook 設定相同的 threadKey
,則兩個不同的執行緒會啟動。
發起討論串
如要張貼含有 Webhook 的對話串訊息,請將 threadKey
和 messageReplyOption
參數附加至 Webhook 網址。將 threadKey
設為任意字串,但提醒您,參數本身應重複使用,因此您必須再次指定它才能在執行緒中張貼回覆。
https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?threadKey=ARBITRARY_STRING&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
回覆討論串
如要將訊息傳送至現有的訊息串,請將 threadKey
和 messageReplyOption
參數附加至用來啟動執行緒的值的 Webhook 網址。舉例來說,若傳訊息到下列網址,則回覆了會話串:threadKey
為 MY-THREAD
,而 messageReplyOption
為 REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
:
https://chat.googleapis.com/v1/spaces/SPACE_ID/messages?threadKey=MY-THREAD&messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
限制與注意事項
設定 Webhook 時,請注意下列限制和注意事項:
每個 Webhook 只能在已註冊的 Chat 聊天室中使用。
您無法在 Google Workspace Marketplace 中發布 Webhook。
Webhook 不是對話,使用者無法透過 Google Chat 回覆使用者或活動的訊息。
如果只要選取網域中機構單位 (OU) 啟用 Chat 應用程式,傳入的 Webhook 會傳回下列錯誤:
{ "error": { "code": 403, "message": "The caller does not have permission", "status": "PERMISSION_DENIED" } }
連入 Webhook 可在即時訊息中運作,但只有在所有使用者都已啟用 Chat 應用程式的情況下。
由於「
管理 Webhook」僅適用於網路瀏覽器,因此您必須透過 Chat 網頁應用程式設定 Webhook。您無法透過 Chat 行動應用程式設定 Webhook。