digiRunner Composer node-red webhook google-chat

使用 Composer 整合通知與警報系統

顏綸 Lun Yan 2025/03/21 19:00:07
15

前言

之前有 PM 問小弟我說 "能不能使用 Composer 做出 webhook 機制的範例?",才疏學淺的我想了想,心說 "阿不就 API?是要做什麼?",

不過小弟越想越不對,先看了看 webhook 的定義:

Webhook 是一種 事件驅動 的機制,允許一個應用程式在特定事件發生時,自動通知 另一個應用程式。

它通常透過 HTTP POST 請求 將資料發送到指定的 URL。

即又問了一下 GPT "webhook 與 API 差在哪裡?",GPT 給了以下答案:

總結就是說 Webhook 是"事件發生後自動通知你",而 API 是"你主動查詢某個資料或執行某個動作"。

 

感謝 PM 大大和 RD 的謎之直覺教了我一課,藉這個機會來分享使用 webhook 機制的範例

 

 

一、前置設定

1. Google Chat 建立聊天室

2. Google Chat 使用 webhook

然後我們點聊天介面偏左上角聊天室名稱旁邊的下拉選單

點擊 "應用程式與整合"

進到 webhook 介面來新增 webhook

名稱隨意,圖片隨意

再來就能得到一個 URL。(這個 URL 不能公開,不然別人可能會玩你的聊天室哦)

 

 

二、Composer 流程

以下是一個簡單的依請求條件來查詢病人的 API:

流程一:

檢查請求的格式,格式不對則跳到流程二並做流程三

檢查格式過了就去資料庫取資料並直接回傳。

如果途中連線資料庫有問題或是其他意外錯誤也會跳到流程二並做流程三。

 

流程二:

將錯誤的資訊回傳

 

流程三:

依 google-chat 的 webhook 所需參數傳過去發生的錯誤來達到告警的作用

http request 節點方法要使用 POST

節點所需 URL 則是剛剛在前置作業得到的 URL,如下所示:

 

 

三、操作

以上流程介紹完畢後,我來操作看看實際效果如何。

正常查詢:

結果:

以上就不會觸發 webhook 流程

 

錯誤請求一:

故意打錯格式試試看

回應:

再看看 google chat

確實有如實的錯誤告警。

 

錯誤請求二:

再來試試 db name 給個不存在的

回應:

看看 google chat 有什麼:

 

 

四、結語

分享了這篇範例以後,小弟對 webhook 有個更清晰的認識,不再和 API 搞得傻傻分不清楚,

希望以上功能機制大家會喜歡。

 

 

五、參考文獻

(1) node-red 官方

(2) 自己

(3) Chat-gpt

顏綸 Lun Yan