n8n 是近年來非常熱門的自動化工具,能夠輕鬆整合各種服務,提升工作效率。
這篇教學將帶你用 n8n 打造一個 LINE echo bot——只要你在 LINE 上傳訊息給機器人,它就會原封不動地回覆你。例如,你傳「你好」,機器人就會回「你好」。
這個流程建立好之後,你可以依此基礎,進一步延伸出更多自動化應用。
雖然過程中會涉及一些程式基礎,但即使沒有程式經驗,只要照著步驟操作、複製設定內容或直接使用範例工作流,也能順利完成。 本教學以 LINE 英文管理介面為例,若你使用的是中文介面,對照操作也非常容易。
LINE設定流程
要註冊一個LINE Developers開發者帳戶
建立Provider:
Provider(服務提供者):指的是在 LINE Developers 平台上,提供服務並獲取用戶資料的個人、企業或組織。Provider 是一個管理單位,代表實際提供 LINE 相關服務的主體(如公司或品牌)

Channel(服務渠道):是 Provider 在 LINE 平台下所建立的各種應用服務的實體,例如 Messaging API、LINE Login 等。Channel 是讓 Provider 能夠使用 LINE 各項功能(如訊息推播、用戶登入)的橋樑
每一個 Channel 必須隸屬於一個 Provider 之下,不能獨立存在,也不能跨 Provider 設定
一個 Provider 底下可以建立多個 Channel,依照不同的業務需求(如不同品牌、不同服務功能)來區分
例如假設 A 公司有兩個品牌(A-1、A-2),分別需要 LINE Login 功能,則應在「A 公司」這個 Provider 底下建立兩個 Channel(分別對應 A-1、A-2)。這些 Channel 所蒐集的用戶資料都由 A 公司(Provider)統一管理
建立Channel:

我們選擇建立 Messaging API 的 channel :

要建立一個 LINE Official Account (LINE官方帳號)才能使用 LINE Messageing API 發送訊息給使用者
所以會先到 LINE官方帳號的後台, 建立一個帳號, 第一次進入會先簡訊驗證, 然後填寫表單建立帳號:

建立之後會問要不要認證帳號, 可以選擇稍後
建立好帳號如下

你要讓 LINE 官方帳號具備自動回覆、聊天機器人、串接外部系統等進階功能時,必須先在 LINE Developers 後台建立一個 Channel(例如 Messaging API Channel),然後將這個 Channel 綁定到你的 LINE 官方帳號
LINE 官方帳號是對用戶的品牌門面,Channel 則是讓這個帳號能與外部系統溝通的技術橋樑
再來就是要啟動Message API
在官方帳號管理後台, 進入剛建立的帳號, 畫面右上角有個Settings點選進入, 選擇Message API 選項, 點選 "啟用Message API", 選擇我們剛剛建立的provider, 隱私權政策可以略過, 按下確定啟用Message API , 有以下畫面就是啟動成功嚕!

一些細項設定看你的需求, 在LINE 官方帳號後台 Account seettings可以設定要不要允許這個bot可以加入到群組
使用ngrok設定n8n server
這裡假設你已經設定好n8n server並且啟動在 localhot:5678
ngrok 是一個反向代理工具,用於將本地開發環境的服務快速暴露到公網。它通過在本地與 ngrok 伺服器之間建立安全隧道,提供一個公開的 URL,讓外部用戶或設備可以訪問本地的 Web 服務
我們利用像 ngrok這樣的工具將我們的 n8n server暴露在公網下, 提供給LINE呼叫
ngrok http http://localhost:5678
你會看到如下畫面

Forwarding (紅色圈起來的部分) 就是對外的網址, 可以讓我們設定在 LINE webhook上
我們先來建立n8n流程
N8N設定流程

echo server最簡易只需要兩個節點
第一先設定 Webhook 節點
監聽使用者輸入
HTTP Method 設定為 POST
複製 Webhook 節點產生的網址 (點選URL欄位就可以複製)

打開 LINE Developer後台, 選擇到你新增的channel, 你會看到webhook選項

點選編輯, 加入你從n8n節點複製好的URL, 測試用的像以下:
http://localhost:5678/webhook-test/516a7013-af97-44ae-99b4-49a9c460b432
將 http://localhost:5678 替換成 ngrok給我們的URL, 例如:
https://1d3f-59-1111-155-211.ngrok-free.app/webhook-test/516a7013-af97-44ae-99b4-49a9c460b432
儲存後回到 n8n 按下啟動測試

在LINE Developer後台按下 Verify 看有沒有連通, 如果有, 就會顯示成功提示, 並且在n8n節點會看到以下內容表示webhook成功了:

因為是測試用, 所以執行一次webhook節點就會停止
再次點選節點上的 Listen for test event, 就可以開始監聽webhook事件了,
在Line上我們發訊息給機器人訊息, 就會得到像是以下的結果:

要關注的的數值如以下:
[
// ....
"body": {
"events": [
{
"type": "message",
"message": {
"type": "text",
"text": "水"
},
"replyToken": "6289df2696774c45b71c5075273048",
"mode": "active"
}
]
},
"webhookUrl": "http://localhost:5678/webhook-test/516a7013-af97-44ae-99b4-49a9c460b432",
"executionMode": "test"
}
]
新增 Request 節點
再來新增Request 節點, 用來呼叫 Line API 將想要回傳的資料傳給使用者

- Method: POST
- URL: https://api.line.me/v2/bot/message/reply
- 選擇 Generic Credential Type 以及 Bearer Auth
- Bearer Auth account 的 Bearer Token 填入我們新建立的Channel Aceess Token, 進入到LINE Developers 選擇channel 的Messaging API, 拉到最下方會看到


設定 Headers打開, 填入
- Content-Type: application/json

Send Body打開,
Body Content Type 選 JSON, Specify Body選 Using JSON,
JSON 主題填入如以下: (像是 {{ $json.body.events[0].replyToken }}
這種參數可以從左側input拉入, 會顯示預覽看數值有沒有拉對 )
replyToken 是 LINE Messaging API 在收到用戶訊息(或特定事件)時,隨 webhook 一起傳送給你的「一次性憑證」。它的用途是讓你的機器人能夠在短時間內(通常是幾秒內)直接回覆這則訊息。你必須在收到 webhook 事件後,使用這個 replyToken 發送回應訊息給用戶,API 會根據這個 token 把訊息送到正確的對話串, replyToken 只能使用一次,且有效時間非常短(大約 30 秒內,實際會依系統狀況調整),超時或重複使用都會失效
發送 reply message 時,必須在 API 的 body 內帶上 replyToken 和 messages 內容:
{
"replyToken": "{{ $json.body.events[0].replyToken }}",
"messages": [
{
"type": "text",
"text": "{{ $json.body.events[0].message.text }}"
}
]
}

儲存後, 就可以啟動webhook節點監聽測試了

測試都沒有問題, 就可以在webhook節點正式打開Production URL, 和我們剛才用的Test URL差別就是 /webhook/
和 /webhook-test/
production URL就會一直監聽訊息了,

按下Execute Workflow, 並且將右上角的狀態改為Active:


使用 LINE Developers後台將webhook URL改成production的

大功告成!!

未來應用與進階延伸
恭喜你順利完成 n8n LINE echo bot 的設置!
透過這個簡單的範例,就可以串接 n8n 與 LINE,並讓機器人根據你的訊息自動回覆。
這只是自動化世界的起點——未來你可以根據這個基礎,加入更多條件判斷、串接第三方服務(如 Google Sheets、Gmail、天氣 API 等),甚至實現個人化回應或自動化工作流程。
如果你在操作過程中遇到任何問題,歡迎留言討論或參考 n8n 與 LINE 官方文件。希望這篇教學能幫助你開啟自動化的新世界,也期待看到你創造出更多有趣又實用的應用!