工作流介紹
Telegram 天氣工作流程分析
這個名為「Telegram 天氣工作流程」的 N8n 工作流程範本,是一個實用的自動化工具,旨在透過 Telegram 回應使用者訊息,提供即時天氣更新。它利用 n8n 的整合能力,將 Telegram 訊息與 OpenWeatherMap 的即時天氣資料連結,讓使用者無需離開聊天介面,即可收到即時、個人化的天氣報告。
工作流程功能說明
此工作流程會監聽 Telegram 機器人收到的訊息,一旦收到訊息,便會自動從 OpenWeatherMap API 擷取預設城市(在此範例中為德國柏林)的目前天氣資訊。接著,它會將這些資料格式化成自然語言訊息,並回傳給觸發對話的使用者,使其成為一個互動式、反應迅速的天氣助理。
主要特色與功能
- 事件驅動觸發器:由任何 Telegram 訊息觸發,確保即時反應。
- 即時天氣資料:擷取最新的天氣狀況和溫度讀數。
- 動態訊息個人化:使用資料表達式,以實際天氣數值自訂回覆。
- 無縫聊天整合:自動回覆給原始發送者,使用其聊天 ID。
- 低維護且全自動化:一旦部署,即可持續運行,無需手動介入。
主要節點及其用途
-
Telegram Trigger
- 類型:
n8n-nodes-base.telegramTrigger - 用途: 作為工作流程的進入點。它監聽 Telegram 的傳入更新,並在收到新訊息時觸發工作流程。
- 設定: 設定為僅擷取「訊息」更新,這表示發送給機器人的任何文字都會啟動流程。
- 憑證: 連接到名為「Telegram」的預先設定的 Telegram 機器人 API 憑證。
- 類型:
-
OpenWeatherMap
- 類型:
n8n-nodes-base.openWeatherMap - 用途: 擷取指定地點的目前天氣資料。
- 設定: 硬編碼為擷取德國柏林("berlin,de")的天氣,包括溫度、體感溫度和天氣描述等詳細資訊。
- 憑證: 使用儲存在「OpenWeatherMap」下的已驗證 OpenWeatherMap API 金鑰。
- 類型:
-
Telegram (Send)
- 類型:
n8n-nodes-base.telegram - 用途: 將格式化的訊息回傳給發起對話的使用者。
- 設定:
text參數使用 n8n 的表達式語法,將天氣資料動態插入友善的訊息中。chatId動態設定為與發送原始訊息者的 ID 相符,確保正確的回覆路由。- 包含表情符號以增強可讀性和使用者參與度。
- 類型:
使用案例與效益
- 個人助理機器人:非常適合建立提供天氣預報等實用日常資訊的簡單聊天機器人。
- 客戶支援工具:可擴展支援旅行或活動規劃服務,其中天氣背景很重要。
- 教育專案:非常適合教授 API 整合、事件驅動工作流程和動態資料處理。
- 家庭自動化整合:可作為較大智慧家庭系統的一部分,使用者可透過聊天查詢環境條件。
效益包括:
- 使用真實 API 的快速回應時間。
- 高度可重用性—可適應其他城市或額外的天氣指標。
- 使用者友善的輸出,提升互動品質。
- 由於節點分離清晰且邏輯直觀,設定要求最低。
工作流程邏輯步驟詳解
-
觸發階段:
- 使用者向連接的 Telegram 機器人發送任何訊息(例如,「你好」或「取得天氣」)。
- Telegram Trigger 節點偵測到此訊息並啟動工作流程,傳遞包含發送者聊天 ID 的完整訊息物件。
-
資料擷取階段:
- 工作流程繼續執行至 OpenWeatherMap 節點。
- 此節點向 OpenWeatherMap API 發出 HTTPS 請求,查詢德國柏林的目前天氣資料。
- 收到回應後,它會輸出結構化的 JSON,其中包含溫度(
main.temp)、體感溫度(main.feels_like)和天氣狀況(weather[0].description)等欄位。
-
回應生成與傳遞階段:
- 接著執行 Telegram (Send) 節點,使用前兩個節點的資料:
- 它使用表達式建構一個易於理解的訊息:
- 插入天氣描述(例如,「小雨」)。
- 以攝氏度添加實際溫度和體感溫度。
- 包含一個友善的表情符號以增強語氣。
- 使用
={{$node["Telegram Trigger"].json["message"]["chat"]["id"]}}動態設定收件人,確保回覆能正確傳送給使用者。
- 它使用表達式建構一個易於理解的訊息:
- 訊息透過相同的 Telegram 機器人發送,完成互動循環。
- 接著執行 Telegram (Send) 節點,使用前兩個節點的資料:
總之,此工作流程透過將外部 API 與訊息平台連結,展示了 n8n 如何實現強大、對話式的自動化—將簡單的觸發器轉變為智慧、資料驅動的回應系統。
使用方法:下載 JSON 檔案,然後在 n8n 中選擇「從檔案匯入」。