Hello,我是 KK,今年的鐵人賽,想跟大家分享架設 n8n 遇到的一些挑戰跟意外,就讓我們一起學習吧。
我們在 [[鐵人賽 day23 - 設定 n8n Telegram Node]] 取得了 Telegram 的 bot token,但真的要傳訊息的時候,它的 node 裡有一個 chat ID 的欄位要填。
這個 Chat ID 就是當 bot 要主動傳訊息時,決定到底要傳給哪個人或哪個群組用的。
那我們該怎麼取得這個 Chat ID 呢?這裡提供兩種方式。
首先,我們要先跟自己建的 bot 講話,隨便打個字給它。
然後,打開瀏覽器,網址輸入 https://api.telegram.org/bot{{token}}/getUpdates ,{{token}} 要改成我們昨天拿到的 bot token。
在回傳的訊息中,就可以看到chatid,路徑是 message.from.id
如果說你要讓 bot 傳訊息到群組的話,要先將 bot 加到群組內,並給予管理者權限,然後一樣在群組裡講話就行了。只是群組是取 message.chat.id
的值。
既然我們前面都架好了 n8n,也設定好了 credential,那也能很輕鬆的透過 n8n 來取得相同的資訊。
在 [[鐵人賽 day15 - workflow 的建立與匯出]] 裡建立 workflow 的 trigger,之前我們是用手動或是 schedule,這次我們在搜尋欄填 telegram
,就會出現相關的 trigger
我們選 On message
,然後設定對應的 Telegram Credential。再按下左邊的 Execute Step
的橘色按鈕。
沒問題的話,應該會看到這個畫面,那就代表現在 n8n 已經在監控這個 bot 的對話訊息了。然後我們一樣跟 bot 講兩句話,應該很快在右邊就會出現相似的資料。
也是一樣的路徑 message.from.id
只是要注意的是,Telegram 一次只能接受一個服務監聽。如果你有多個 workflow 都需要監聽訊息,可能要建多個 bot 或是用一些分流手法。同時測試的時候,正式環境的也會被中斷。
今天講的兩個手法,大家可以自行決定要用哪個。我會建議第二個,因為可以剛好測試 Telegram Credential 有沒有設定正確,而且 n8n 也已經排版過了,比較一目了然。