iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0
AI 自動化

30 天打造我的 AI 自動化工作流系列 第 20 篇

Day 20|n8n 怎麼跟其他服務溝通?第一次用 HTTP Request 串接 API

  • 分享至 

  • xImage
  •  

昨天我們開始處理「多筆資料」,了解 n8n 裡的資料不一定只有一筆,也可以利用 Items 和批次處理一次處理很多資料。

但到目前為止,我們使用的資料大部分還是:

自己建立測試資料

Webhook 接收別人傳來的資料

Google Sheets 裡已經存在的資料

這讓我想到一個問題:

如果我想讓 n8n 主動去其他網站或系統取得資料呢?

例如:

查詢天氣資料

取得匯率

查詢商品資訊

呼叫 AI 服務

取得其他系統的資料

這些功能背後常常都會使用到一個東西:

API

所以今天要第一次真正用 n8n 的 HTTP Request Node 呼叫 API。


API 到底是什麼?

其實前面 Day 5 就有提過 API,只是當時沒有真的操作。

我現在會把 API 想成:

不同系統之間溝通的方式之一。

例如我有一個天氣服務,而 n8n 想取得天氣資料。

不一定要讓 n8n 打開天氣網站、找到文字再複製回來。

如果這個服務提供 API,就可以直接提出請求:

n8n
 ↓
API Request
 ↓
天氣服務
 ↓
回傳資料
 ↓
n8n

回傳的資料通常也會是我們前面學過的 JSON。

所以學到這裡,我才發現:

JSON、Webhook、API 其實慢慢都串在一起了。


HTTP Request Node 是什麼?

在 n8n 裡,如果想呼叫一個 API,很常會使用:

HTTP Request Node

它的工作可以簡單理解成:

幫 Workflow 對某個網址發出 HTTP Request,並接收對方回傳的資料。

例如:

Manual Trigger
      ↓
HTTP Request
      ↓
   API Server
      ↓
   JSON Result

今天先不做需要註冊帳號或 API Key 的服務。

先找一個公開測試 API,專心了解 API 是怎麼運作的。


Step 1:建立今天的 Workflow

今天先建立最簡單的流程:

Manual Trigger
      ↓
HTTP Request

先加入 Manual Trigger。

接著新增一個:

HTTP Request

https://ithelp.ithome.com.tw/upload/images/20261004/20178835QhnYflwaiI.png

圖 1 建立 Manual Trigger 與 HTTP Request Node

今天的 Workflow 看起來反而比前幾天簡單很多。

因為今天的重點不是流程有多複雜,而是:

成功跟 n8n 外面的服務取得資料。


Step 2:使用公開測試 API

今天可以使用 JSONPlaceholder 這類公開測試 API 來練習。

它會提供假的文章、使用者等測試資料,不需要拿自己的私人資料來測試。

例如取得其中一篇測試文章時,可以向它的 /posts/1 資源發出請求。

JSONPlaceholder 官方網站

HTTP Request Node 裡先設定:

Method:GET

再把要取得資料的 API endpoint 填入 URL 欄位。

https://ithelp.ithome.com.tw/upload/images/20261004/20178835wnsX0rGYM3.png

圖 2 HTTP Request Node 的 GET Request 設定


Step 3:第一次送出 GET Request

設定完成後執行 HTTP Request。

如果成功,就會取得類似這種 JSON:

{
  "userId": 1,
  "id": 1,
  "title": "...",
  "body": "..."
}

這時候應該會突然有種熟悉的感覺。

因為 Day 8 就已經看過 JSON:

{
  "name": "Student",
  "course": "AI Automation"
}

只是以前 JSON 是我們自己建立的。

今天則是:

從外部 API 取得 JSON。

https://ithelp.ithome.com.tw/upload/images/20261004/20178835sZUSuJ5m4e.png

圖 3 HTTP Request 成功取得 API 回傳的 JSON 資料


Step 4:GET 到底是什麼?

剛剛 HTTP Request 裡設定了:

GET

GET 是常見的 HTTP Method 之一,通常用來向指定的資源取得資料。

可以先簡單理解成:

GET → 我要取得這個資源的資料

例如:

n8n
 ↓
GET Request
 ↓
API
 ↓
Response

除了 GET 之外,以後也很常看到:

POST
PUT
PATCH
DELETE

它們可以用來表示不同的操作。

今天先專心把 GET 搞懂就好。


Step 5:API 的 Request 和 Response

做到這裡,我開始理解 API 最基本的一組概念:

Request(請求)

Response(回應)

n8n 對 API 說:

「我要取得這筆資料。」

這是:

Request

API 把 JSON 傳回來:

{
  "id": 1,
  "title": "...",
  "body": "..."
}

這就是:

Response

所以今天的資料流可以畫成:

n8n
 │
 │ Request
 ↓
API
 │
 │ Response
 ↓
n8n

這也是為什麼 n8n 很適合做自動化。

因為取得 Response 之後,可以馬上把資料送到下一個 Node。


Step 6:把 API 資料交給 AI

既然 API 已經成功取得一篇文章,那就可以把前面學過的 AI 加回來。

Workflow 變成:

Manual Trigger
      ↓
HTTP Request
      ↓
     AI

例如 HTTP Request 回傳:

{
  "userId": 1,
  "id": 1,
  "title": "...",
  "body": "..."
}

AI 就可以使用其中的:

title
body

Prompt 可以寫成:

請閱讀以下文章內容,並整理成簡短摘要。

標題:
{{ $json.title }}

內容:
{{ $json.body }}

請用 2~3 句話整理文章重點。

這時候整個流程就變成:

n8n 主動取得外部資料 → AI 自動處理資料

https://ithelp.ithome.com.tw/upload/images/20261004/20178835FINLIFUpnS.png

圖 4 將 HTTP Request 取得的資料交給 AI 處理


Step 7:再把結果存起來

如果想把前面學的功能一起用上,還可以再接 Google Sheets:

Manual Trigger
      ↓
HTTP Request
      ↓
     AI
      ↓
Google Sheets

最後保存:

TitleAI Summary
API 取得的文章標題 AI 產生的摘要

這樣就完成一個小型的:

API 資料自動整理 Workflow

整個過程已經完全不需要自己複製文章給 AI。

https://ithelp.ithome.com.tw/upload/images/20261004/20178835DcxnS0qYQ1.png

圖 5 API → AI → Google Sheets 完整 Workflow

實際執行後,n8n 先透過 HTTP Request 從公開 API 取得文章資料,再交給 AI 產生摘要,最後自動寫入 Google Sheets,完成一個簡單的 API 資料自動整理流程。

Webhook 和 HTTP Request 有什麼不同?

做到今天,我一開始很容易把這兩個搞混。

因為它們好像都跟外部資料有關。

但目前可以先這樣理解:

Webhook:

外部系統
    ↓
傳資料給 n8n
    ↓
Webhook

比較像:

「我在這裡等你把資料傳進來。」

而今天的 HTTP Request:

n8n
 ↓
HTTP Request
 ↓
外部 API
 ↓
資料回到 n8n

比較像:

「我主動去跟外部服務提出請求。」

這樣兩個就比較不容易搞混。


API Key 又是什麼?

今天故意選擇不需要 API Key 的測試服務。

但很多真正的 API 不會讓所有人隨便使用。

例如有些服務會要求:

API Key

可以先把它理解成:

API 用來確認呼叫者身分或權限的一種憑證。

所以之後可能會看到:

n8n
 ↓
HTTP Request
 ↓
帶著 API Key
 ↓
API 驗證
 ↓
回傳資料

有一件事情很重要:

API Key 不應該直接公開在文章或截圖裡。

之後如果截 n8n 畫面,只要看到 API Key、Token、密碼或其他 Credentials,都要先遮掉。


API 失敗時怎麼辦?

今天也可以故意把 URL 改錯一次。

例如 API 網址錯誤,就可能收到:

404

如果沒有權限,有些 API 可能會回傳:

401

如果伺服器本身發生問題,也可能看到:

500

這些就是常見的 HTTP Status Code。

目前不用全部背起來,可以先記:

2xx → 通常代表請求成功
4xx → 通常是請求端、權限或資源相關問題
5xx → 通常是伺服器端發生問題

這又剛好跟 Day 18 的除錯接起來。

以後 HTTP Request 出錯時,除了看 Node 有沒有變紅,也可以看看 API 回傳的狀態和錯誤資訊。


今天最大的收穫

做到今天,我覺得 n8n 的用途突然又變大很多。

前面比較像是在:

處理已經進入 Workflow 的資料。

但加入 HTTP Request 之後,Workflow 還可以:

主動向其他服務取得資料。

例如未來就可能做到:

Schedule Trigger
       ↓
每天固定時間
       ↓
HTTP Request
       ↓
取得 API 資料
       ↓
AI 分析
       ↓
Google Sheets
       ↓
Email 通知

這樣前面學過的 Schedule Trigger、AI、Google Sheets 和 Email,就又全部可以串回來了。


今日小結

今天第一次真正使用 HTTP Request Node 呼叫 API。

也理解了幾個重要概念:

API:讓不同系統交換資料與功能的介面

Request:我們送出去的請求

Response:對方回傳的結果

GET:常見的取得資源方式

HTTP Request Node:讓 n8n 呼叫 API

最後把流程從:

Manual Trigger
↓
HTTP Request

進一步變成:

Manual Trigger
↓
HTTP Request
↓
AI
↓
Google Sheets

從 Day 1 只是使用 ChatGPT 問問題,到現在已經開始讓 AI 自動處理從外部服務取得的資料。

但今天使用的是不需要驗證的公開測試 API。

真正開始串接其他服務時,常常會遇到:

API Key、Token、Authentication

所以明天就來繼續處理這個問題。


上一篇
Day 19|一次來很多筆資料怎麼辦?認識 n8n 的多筆資料與批次處理
下一篇
Day 21|API 不是誰都能用!認識 API Key、Token 與 Authentication
系列文
30 天打造我的 AI 自動化工作流 共 26 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言