iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
IT 管理

《把瑣事交給 n8n:零基礎自動化工作流實戰》系列 第 6

Day 06: 【n8n x API】初探 HTTP Request 節點

  • 分享至 

  • xImage
  •  

昨天,我們成功為 n8n 助理裝上了「智慧大腦 (AI)」和「美學之手 (HTML)」,讓它能產出精緻的每日簡報。這證明了 n8n 在處理「數位世界」裡的資訊時,有多麼靈活與強大。

然而,你可能會開始思考:如果我想獲取除了新聞之外的其他即時資訊呢?像是天氣資料、即時股價、最新的影片列表…等等。有些資訊雖然可能有提供 RSS 訂閱服務,但往往資訊並不完整,或者無法提供你想要的細節。

舉例來說,中央氣象署的 RSS Feed,它提供的可能只有某一個縣市每日的溫度範圍,這資訊並不夠精確。如果我想獲得文山區的「每小時溫度」數據,好讓我的 n8n 助理能判斷「現在是否需要加外套」,那 RSS 就顯得力不從心了!

這時候,我們就需要理解一個更為關鍵的知識 —— API (應用程式介面),它能讓 n8n 深入真實世界的資料源,獲取你所需要的最精準、最細緻的資料。而今天,我們將專注於學習 n8n 中最核心的節點:HTTP Request,它就是我們用來獲取這些寶貴資料的「強大、客製化食材獲取商」。

準備好了嗎?就讓我們一起打開 n8n 與真實世界溝通的大門吧!


一、什麼是 API? — 你的專屬「食材獲取商」

你可以把網路上的各種服務(如中央氣象署、YouTube、Google Maps)想像成一家家巨大的「食材供應商」,它們各自擁有豐富的資料「食材」。而 API (應用程式介面),就是這些供應商提供給外部客戶的一套標準化「訂購與交付系統」。

透過 API,你的 n8n 助理不再需要像無頭蒼蠅一樣瀏覽網頁大海撈針,而是能像一個專業的「食材獲取商」,精準地告訴供應商它要什麼,然後供應商會以標準的格式(通常是 JSON)將「食材」打包送來。

  • 你的 n8n 工作流:就是那個「食材獲取商」,負責發出訂單。

  • HTTP Request 節點:就是「專用訂購平台」,它可以拿來跟不同的供應商聯繫。

  • API 文件 (Documentation):這非常重要!它就是每個食材供應商提供給你的「產品型錄與訂購指南」,上面會詳細說明:

    • 有食材可以從哪裡訂 (API Endpoint / URL):每種食材都有一個專屬的編號或路徑。
    • 食材可以怎麼訂 (HTTP Methods):你是要「查詢」(GET) 現有食材,還是要「下單」(POST) 新訂單?
    • 訂購時需要提供什麼資訊 (Parameters / 參數):例如「肉品要幾公斤?」「蔬菜要有機的嗎?」這些就是你給供應商的「客製化要求」。
    • 訂完會得到什麼 (Response 格式):供應商會以什麼格式(例如 JSON)回覆給你訂購的食材清單。
    • 舉例來說,中央氣象署開放資料平臺之資料擷取API 裡面會寫清楚我們要如何向這個平台來進行訂購食材,將像是一份訂購食材的說明書一樣。接下來,我們將探討如何去向食材供應商獲取食材

    看 API 文件就像看產品型錄,它告訴你:① 去哪裡拿貨 (URL),② 怎麼拿 (GET / POST),③ 要附上哪些資料 (參數),④ 回來會長怎樣 (JSON 格式)。


二、如何向「食材供應商」下訂單? — Methods 與 Parameters 的運用

了解了 API 的概念後,現在我們來看看,如何透過 HTTP Request 這個「訂購平台」,精準地向食材供應商下達你的需求。這主要會涉及到兩個關鍵元素:你的「訂購意圖」和「客製化要求」。

2.1 你的「訂購意圖」:HTTP Methods

當你打電話給食材供應商時,你的意圖很重要。你是要「查詢」今天的特價,還是要「下新訂單」?在 API 的世界裡,這就是 HTTP Methods。

  • GET (查詢 / 獲取食材):這是最常見的,純粹用來獲取資訊。就像你打電話問:「請問你們今天有哪些新鮮蔬菜?」我們今天主要會使用這個方法。(因為我們只需要獲取天氣的資訊,不需要改變供應商的資料)
  • POST (新增 / 下新訂單):用來提交新的資料,建立新的資源。例如:「我要下一筆新的蔬菜訂單。」
  • PUT / PATCH (修改 / 更新食材規格):用來更新已存在的資料。例如:「我剛才的肉品訂單,份量要從 1 公斤改成 2 公斤。」
  • DELETE (刪除 / 取消訂單):用來刪除已存在的資料。例如:「麻煩幫我取消剛剛那筆訂單。」

2.2 你的「客製化要求」:Parameters (參數) 與 API 文件閱讀

拿到產品型錄(API 文件)後,你不能只說「我要蔬菜」,還要告訴供應商「我要有機的、高麗菜、5公斤」。這些額外的客製化資訊,就是 Parameters(參數)。閱讀 API 文件,就是學習如何精準地填寫這些要求。

以中央氣象署 API 文件為例:

我們想要從中央氣象署這個「食材供應商」那裡,獲取臺北市的「台北市某鄉鎮市區的預報」這項食材。
https://ithelp.ithome.com.tw/upload/images/20250920/201780178fRGKHNoaP.png

  1. 找到「食材路徑」(URL / Endpoint):在氣象署的 API 文件中,我們會找到像 F-D0047-063 這樣的資料集代碼,它對應的完整 URL 會是:
    https://opendata.cwa.gov.tw/api/v1/rest/datastore/F-D0047-063

  2. 確認「訂購意圖」(Method):文件會明確指出,獲取預報資料使用 GET 方法。

  3. 了解「客製化要求」(Query Parameters):文件會列出這項食材可以接受哪些客製化參數:

    • Authorization (授權碼):這是你訂購時必須出示的「會員卡」或「許可證」。你需要到氣象署開放資料平台申請一組專屬的 API Key。(官方通常都會有告訴你哪裡可以獲取 API Key,就像我們昨天所獲得的 Gemini API key 一樣)
    • format:你希望供應商以什麼格式打包食材?今天的例子我們會指定 JSON
    • locationName:你想查詢哪個地區的預報?今天的例子我們會指定 文山區

    訂單有提供哪些客製化需求,在官方文件通常都會撰寫清楚

這些 Key=Value 的組合,就是我們在 HTTP Request 節點中要填寫的內容。

2.3 測試 API

有些比較不錯的廠商,會在他們的官網上,提供測試的地方,讓你可以先在上面練習怎麼下訂單。像是中央氣象署在每一種食材路徑都會有「Try It Out 」的按鈕,你可以在上面先測試一下要怎麼去下單,成功後再去設定HTTP Request 節點會比較不容易失敗。


三、動手實作:用 HTTP Request 節點向氣象署「訂購食材」

概念都清楚了!現在,就讓我們在 n8n 中實際操作,為我們的廚房建立第一個「文山區天氣資料訂購單」,向中央氣象署訂購臺北市的逐三小時溫度預報!

  1. 新增 HTTP Request 節點

    在你的 n8n 工作流畫布上,點擊「 +」 新增節點,搜尋並選擇 HTTP Request。

  2. 設定 Method (訂購意圖)

    在節點的參數面板中,找到 Method 選項,選擇 GET。

  3. 設定 URL (食材路徑)

    將我們從 API 文件中找到的 URL 貼入 URL 欄位:
    https://opendata.cwa.gov.tw/api/v1/rest/datastore/F-D0047-063

  4. 啟用並設定 Query Parameters (客製化要求)

    這是告訴氣象署我們具體要什麼資料的關鍵。

    • 點擊 Add Query Parameter
    • 第一個參數:Name: Authorization, Value: 你從官網獲得的授權碼
    • 第二個參數:Name: format, Value: JSON
    • 第三個參數:Name: LocationName, Value: 文山區
      https://ithelp.ithome.com.tw/upload/images/20250920/20178017kWpNlcti4U.png
      https://ithelp.ithome.com.tw/upload/images/20250920/20178017slLOzK34s2.png
  5. 執行節點,獲取「食材」!

    設定完成後,點擊節點左下角的 Execute Node 按鈕。
    恭喜! 如果一切順利,你將會在節點的 Output 面板中,看到一份巨大的 JSON 資料!這就是中央氣象署這個「食材供應商」,依據你的訂單,打包送來的「臺北市文山區逐三小時天氣預報」原始食材。你已經成功地讓 n8n 助理成為一個專業的「食材獲取商」了!

    如下圖,為執行 HTTP Request 節點後的結果
    https://ithelp.ithome.com.tw/upload/images/20250920/20178017DDzEPOJ8rq.png

HTTP Request 節點的設定以及使用,會根據你的食材供應商而有不同,後續我們會介紹更多食材供應商及其下單方式,敬請期待!例如透過 Meta 旗下的 Threads API 來在 Threads 平台發文、透過 Supabase API來上傳檔案...等等。
通常我們會先去看 n8n 是否已經有提供專屬的節點,如果沒有的話才去看那個平台有沒有提供相關的 API 供我們調用。


結語與明日預告

恭喜你!今天你學會了 n8n 中最通用、也最解放的技能!你不再受限於 RSS,你手上的 HTTP Request 節點,是能開啟網路上無數資料寶庫的萬能鑰匙。你已經掌握了與世界對話的語言,能夠主動獲取任何你想要的資訊。

但一位真正的大廚,不會只滿足於拿到生的食材。我們的助理已經成功從氣象署的廚房,為我們取回了臺北市文山區所有的天氣資料,但它還是一份未經處理的龐大 JSON 資料,裡面包含了多種天氣資訊、以及該行政區的經緯度的資料。要產出一到好的料理,勢必得將食材做處理! 未來我們將學習如何從這份複雜的 JSON 資料中,精準地出我們真正需要的資料,甚至將它轉換成簡潔易懂的格式。

明天就是 Day 7 了,第一週很快就過了,這幾天分享了許多 n8n 的基本概念。明天,我們會稍微暫停腳步,來做一個第一週的回顧,整理我們的智慧廚房已經學會哪些知識與技能,並為下一階段的進化做好準備!


上一篇
Day 05: 【n8n x AI】讓AI為你閱讀與思考,再送上一封完美早報
下一篇
Day 07: 【第一週回顧】目前學了什麼?
系列文
《把瑣事交給 n8n:零基礎自動化工作流實戰》8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言