n8n HTTP Request 節點封面圖:在自動化流程中串接第三方 API

n8n HTTP Request 節點教學:串接第三方 API 與安全保管憑證

內容簡介

HTTP Request 節點是 n8n 中最萬用的節點之一,允許使用者透過 HTTP 請求與任何提供 REST API 的外部服務互動;即使 n8n 沒有內建該服務的節點,也能用它串接。

本文將介紹該節點的應用場景、範例工作流程,以及如何安全地保管 API 金鑰等憑證。

範例場景

假設您需要自動取得天氣資料,並將其記錄到 Google Sheets 中。HTTP Request 節點可用於向天氣 API 發送請求並取得天氣資訊。

Workflow 範例

範例說明

此工作流程包含兩個主要節點:

  • HTTP Request 節點:向 WeatherAPI 發送 GET 請求,查詢參數帶入 q=Taipei,取得當前天氣資訊。
  • Set 節點(Edit Fields):從回應中取出國家、城市、天氣與溫度,整理成精簡的欄位,供後續處理或儲存。

範例中的 your-api-key 為示意用;實際使用時,請不要把金鑰直接寫在查詢參數裡,改用下一段介紹的 Credentials 方式保管。

執行前、後差異

執行前:工作流程未開始,未有任何資料記錄。

[
    {
      "location": {
        "name": "Taipei",
        "region": "T'ai-pei",
        "country": "Taiwan",
        "lat": 25.0392,
        "lon": 121.525,
        "tz_id": "Asia/Taipei",
        "localtime_epoch": 1735520021,
        "localtime": "2024-12-30 08:53"
      },
      "current": {
        "last_updated_epoch": 1735519500,
        "last_updated": "2024-12-30 08:45",
        "temp_c": 18.2,
        "temp_f": 64.8,
        "is_day": 1,
        "condition": {
          "text": "Partly cloudy",
          "icon": "//cdn.weatherapi.com/weather/64x64/day/116.png",
          "code": 1003
        },
        "wind_mph": 2.9,
        "wind_kph": 4.7,
        "wind_degree": 171,
        "wind_dir": "S",
        "pressure_mb": 1023,
        "pressure_in": 30.21,
        "precip_mm": 0,
        "precip_in": 0,
        "humidity": 77,
        "cloud": 75,
        "feelslike_c": 18.2,
        "feelslike_f": 64.8,
        "windchill_c": 15.5,
        "windchill_f": 59.8,
        "heatindex_c": 15.5,
        "heatindex_f": 59.8,
        "dewpoint_c": 9.5,
        "dewpoint_f": 49.2,
        "vis_km": 10,
        "vis_miles": 6,
        "uv": 0.6,
        "gust_mph": 4.1,
        "gust_kph": 6.6
      }
    }
  ]

執行後:從 Weather API 取得的天氣資料會存儲在工作流程的輸出中,例如天氣狀態與溫度。

[
  {
    "Country": "Taiwan",
    "City": "Taipei",
    "Weather": "Partly cloudy",
    "Temperature": "18.2"
  }
]

安全保管 API 金鑰:使用 Credentials

直接把 API 金鑰填在節點參數中,金鑰會以明文跟著工作流程一起匯出、分享或截圖外流。比較好的做法是把金鑰存成 n8n 的 Credential:

  1. 在 HTTP Request 節點的 Authentication 中,若 n8n 已有該服務的內建憑證,優先選擇 Predefined Credential Type(官方建議)。
  2. 沒有內建憑證的服務,選擇 Generic Credential Type,再依 API 的驗證方式挑選,例如:金鑰放在網址參數用 Query Auth(本例 WeatherAPI 的 key 參數即屬此類)、放在標頭用 Header Auth 或 Bearer Auth。
  3. 建立 Credential 後,從查詢參數中移除原本的 key 欄位。

Credential 會以 n8n 的加密金鑰加密後存放;自架時請務必備份這把加密金鑰(可用環境變數 N8N_ENCRYPTION_KEY 指定),遺失後已儲存的憑證將無法解密。

小技巧

  • 匯入 cURL:API 文件若提供 cURL 範例,可在節點中選擇 Import cURL 直接貼上,自動帶入方法、網址、標頭與內容。
  • 遵守 API 使用限制:大量請求時使用 Batching 選項(Items per Batch、Batch Interval)分批送出,避免觸發速率限制;資料分頁則使用 Pagination 選項。
  • 格式化資料:使用 Set 節點整理回應,只保留後續需要的欄位。
  • 檢查請求與回應:在節點的輸出面板檢視回傳資料;需要狀態碼與標頭時,開啟 Response 選項中的 Include Response Headers and Status。

搭配 AI Agent 使用

HTTP Request 節點也可以直接接在 AI Agent 底下作為「工具」,讓 AI 自行決定何時呼叫 API(例如查詢天氣)。作為工具時可以開啟 Optimize Response,只把需要的欄位或截斷後的內容交給模型,減少 Token 用量與費用。

要注意的是,交給 AI 的 API 工具應盡量只提供「讀取」權限,避免模型在誤判時執行刪除或付款等動作。

n8n 系列文章

參考連結

成本與風險摘要

  • 適用對象與規模:需要串接沒有內建節點的服務、或想呼叫自訂 API 的 n8n 使用者。
  • 成本(硬體、訂閱、授權):節點本身不另外收費;外部 API 可能依呼叫次數收費,請參考各服務的方案。
  • 維護時間:外部 API 改版時需調整網址與參數;建議定期檢查流程執行紀錄是否出現錯誤。
  • 資安注意事項:API 金鑰一律存放在 Credentials,不要寫在參數或 Set 節點中;自架時備份加密金鑰;分享工作流程前確認沒有夾帶金鑰。
  • 常見誤區:把金鑰寫在查詢參數後直接匯出分享;忽略 API 速率限制導致帳號被暫停。
  • 不建議使用的情況:n8n 已有該服務的內建節點時,優先使用內建節點,設定與維護都較簡單。
  • 測試日期與版本號:資料查核日期:2026-10-28;依官方文件對照 n8n 2.45.5(範例為作者早期實作,本次未重新實機測試)。
返回頂端