n8n教學:用案例帶你搞懂什麼是API & HTTP協議

要用 n8n 來串接各種服務(例如 Google Sheets、LINE、Notion…),第一步就是了解「API」到底是什麼。

為什麼要先搞懂 API?HTTP協議又是什麼?

要用 n8n 來串接各種服務(例如 Google Sheets、LINE、Notion…),第一步就是了解「API」到底是什麼。

簡單來說,API 就是不同軟體之間溝通的橋樑,定義了如何交換資料的規範。

HTTP協議是什麼?
HTTP協議有這些


另外,就是HTTP協議,可以參考李元魁寫的HTTP 協議是什麼,也就是我們在n8n的 http request/webhook節點會看到的東東:

  • 你要跟某個服務拿資料,就用 GET
  • 你要新增資料,就用 POST
  • 你要更新資料,就用 PUTPATCH
  • 你要刪除資料,就用 DELETE

難懂?沒事,身為一個文組人,我其實也困惑很久,尤其是我沒有朋友可以問XD。

所以,我們換個方式說~

讓我們把它變成是運動來解釋

API 就是軟體之間「傳球」的規則與流程,讓它們能夠準確地將資料傳送、更新或刪除,確保整個系統像一個默契的球隊一樣運作順暢。

  • GET:讀取或查詢資源
    就像教練叫球員去儲藏室拿球,告訴你「這裡有球」。
    → 你只是問:「把球給我看看!」(讀取資料
  • POST:新增資料
    就像教練把一個新球丟給球員,讓球隊新增一個球。
    → 你主動把新球送出去。(新增資料
  • PUT:更新或取代資源(整體更新)
    就像教練發現手上的球不夠好,直接換一個全新的球。
    → 你把整個球換掉。(整體更新
  • PATCH:對資源進行部分更新
    就像球員發現球上有個小洞,只需要修補那個洞,而不必換整個球。
    → 你只修補球的部分。(部分更新
  • DELETE:刪除資源
    就像教練發現某個球已經損壞,決定把它從比賽中拿掉。
    → 你把這個球丟掉,不再使用。(刪除資料
  • HEAD:取得與 GET 相同的相應標題,但不返回主體內容
    就像教練只看球的外表,知道球的狀況,但不把球拿出來細看。
    → 你只檢查球的外觀資訊,不拿球出來。(只獲得標題)
  • OPTIONS:查詢伺服器支援哪些 HTTP 方法
    就像比賽前,教練問球員:「今天我們可以做哪些動作?」
    → 你詢問「這場比賽,我們有哪些進攻、防守的選項?」(了解可用的選擇)
  • CONNECT:建立網絡隧道
    就像球隊在比賽中建立一條專用通道,讓球能順利傳到指定位置。(這個很少用)
  • TRACE:回顧服務器收到的請求
    就像教練回顧比賽影像,檢查球的傳球路徑是否正確。
    → 你追蹤球的路徑,看看是否有偏差。(用於診斷問題)
如何?這樣有清楚點了嗎? 接下來我們進重點!

什麼是 MyGPT?

MyGPT 是一個把 ChatGPT 包裝成更個人化服務的工具,這裡就不再贅述,基本上就是可以讓ChatGPT對外與其他軟體溝通的一種工具。
但注意,MyGPT 其實只能送資料出去(也就是說所有的動作、對話都要從MyGPT開始),你不能從別的地方送資料進去MyGPT,因為它不會主動抓取資料,而是等待 n8n(或其他軟體) 透過 Webhook 將資料送進來,再把這些資料轉送給 ChatGPT(或其他 AI),然後把回應結果推回給你。

沒關係,我們繼續用範例來理解。

用範例來說明API與HTTP協議:拿n8n 串接 MyGPT

n8n 與 MyGPT 互動的流程大概4這樣:

  • Step 1:先在n8n建立一個 Webhook 節點,作為接收來自 MyGPT 訊息的入口。
  • Step 2:到MyGPT建立指令、設定與建立動作(Actions)讓MyGPT可以跟n8n連起來。
  • Step 3:接著MyGPT會要求與n8n建立關係,把你的 prompt 或參數傳送進n8n,MyGPT 處理後會把結果推送回 Webhook。
  • Step 4:在 n8n 裡檢查 Webhook 輸出,再進行後續處理。

Step 1:建立 Workflow 並新增 Webhook 節點

目的:
用來接收 MyGPT 回傳的資料。由於 MyGPT 本身不會主動抓資料,而是等待外部請求處理後再推送結果,所以我們必須先在 n8n 裡建立一個 Webhook 節點。當 MyGPT 處理完你的請求後,會把回應推送到這個 Webhook 節點,就像一個網子,專門用來捕捉外部推送進來的資料。

設定方式:

  • 在 n8n 裡新建一個 Workflow,新增一個 Webhook 節點。
  • HTTP 方法: POST
  • Path: 例如 /webhook/mygpt-callback

對照一下下圖,應該能懂~

Step 2:觸發 MyGPT 呼叫

目的:
從外部發出請求,把你的 prompt 或參數傳給 MyGPT。

設定方式:

1.到ChatGPT裡面建立一個MyGPT:

點擊“配置”這個標籤,接著找到:指令

2. 接著到“功能”:

看你的需求,把相關開關打開,這裡我們就勾第四個先,也可以全開啦,其實沒差。

3. 然後到“動作”這裡,建立新動作。

這裡就是重點了,這就是讓MyGPT可以跟n8n進行溝通的設定。

4. 點開之後,腦袋空白。

對,我知道,我也是,但是不要慌,我們可以不要那麼辛苦。

我們只需要把你的目標、指令、n8n節點截圖、每一個節點的細節畫面截圖,丟進去ChatGPT,請他協助你建立動作的Json格式資料,就搞定了!


把下面的截圖都丟進去ChatGPT,並且告訴他:
這是我的n8n的webhook:https://n8n.ohya.co/webhook/mygpt-callback
我是新手,我要設定MyGPT的動作(Actions),我不會寫,請協助我。
這裡是範例結構:

{

“openapi”: “3.1.0”,

“info”: {

“title”: “Get weather data”,

“description”: “Retrieves current weather data for a location.”,

“version”: “v1.0.0”

},以下省略….

然後ChatGPT會吐出:

{
“openapi”: “3.1.0”,
“info”: {
“title”: “MyGPT Callback”,
“description”: “示範如何將資料傳送到 n8n 的 Webhook。”,
“version”: “v1.0.0”
},
“servers”: [
{
“url”: “https://n8n.ohya.co”
}
],
“paths”: {
“/webhook/mygpt-callback”: {
“post”: {
“description”: “將資料 POST 給 n8n Webhook。”,
“operationId”: “SendDataToN8n”,
“requestBody”: {
“required”: true,
“content”: {
“application/json”: {
“schema”: {
“type”: “object”,
“properties”: {
“message”: {
“type”: “string”,
“description”: “想要傳給 n8n 的文字訊息”
},
“userId”: {
“type”: “string”,
“description”: “(可選)用戶 ID 或其他參考資訊”
}
},
“required”: [
“message”
]
}
}
}
},
“responses”: {
“200”: {
“description”: “成功送出並由 n8n 處理。”
}
}
}
}
},
“components”: {
“schemas”: {}
}
}

貼進去就搞定了!

這裡可以留意,你會發現當你的自訂動作設定完成之後,會看到有個名稱,我們要把它丟到指令中。

接著,我們來設定指令,舉例來說,這是我寫的範例的指令:

你的主要任務
接收使用者的自然語言指令
使用者可能會說「新增問題」、「我想問」等。
例如:「台灣面積多大?」、「你可以陪我聊天嗎?」等等。
當你接受到類似指令,則啟動SendDataToN8n動作
並透過 Webhook 呼叫 n8n,以執行實際的操作,並回傳資料

記得!

  • MyGPT 只是一個資料傳遞的窗口,它不會主動抓資料,而是等待請求後回傳結果。
  • 你會透過外部請求觸發 MyGPT,然後它會把結果推送回你在 Step 1 設定的 Webhook 節點中。
  • 如果ChatGPT產出的 Json資料貼進去之後出錯,沒關係,你就再回頭問就好了!

Step 3:檢視與處理 Webhook 輸出

目的:
檢查 Webhook 節點收到的 MyGPT 回應資料,並根據需要進行後續處理(例如格式整理、串接到其他應用)。

操作方式:

  1. 先到n8n,點開webhook節點,找到Test URL,把它複製下來,貼回去MyGPT的動作裡面,我們先測試。

2. 你看到範例這邊,他是來自n8n節點裡面的production的URL,這是用來上線之後溝通的網址,但是我們因為要先測試,所以這裡畫紅線的地方,要改為/webhook-test/mygpt-callback

3. 接著點開Listen for Test Event,讓n8n可以接收來自MyGPT的訊息

4. 到MyGPT去發送訊息試試看

若是有成功接收,則右側的output就會看到這個一堆密密麻麻的東西了!

後續若是都有設定正確,就可以看到MyGPT正確回傳資料咯!

5. 最後,回到n8n的Webhook節點,我們去Production URL確認一下網址,接著回到MyGPT裡面的動作,將/webhook-test/mygpt-callback,改為/webhook/mygpt-callback

結論來一下

看完這篇文章,你應該能夠明白 API 的基本概念,並知道如何用 n8n 串接 MyGPT 來實現自動化流程。
先理解基礎,再談自動化,這樣的學習方式才不會讓你像無頭蒼蠅一樣迷失方向。

AI & 自動化工作流社群

想了解或是交流討論嗎? 那就加入我們的Line群組吧!

訂閱好事,將有好事

有新內容就能透過Email收到,持續精進好棒棒