部落格

n8n 串接 LINE Bot:自動回覆訊息完整教學

手把手教你用 n8n 串接 LINE Messaging API,建立自動回覆 LINE Bot,不需要寫程式,適合自動化初學者。

n8n 串接 LINE Bot:自動回覆訊息完整教學

  前言                         

                                                                                                           

很多人問我:LINE Notify 關閉後,n8n 還能串接 LINE 嗎?

                                                                                                           

答案是可以!而且功能比 LINE Notify 更強大。LINE Notify 只能「單向推播」,但用 LINE Messaging API 搭配    n8n,你可以做到自動回覆——使用者傳訊息進來,Bot 立刻根據內容回應。                                        

                                                                                                           

這篇文章我會帶你從零建立一個 LINE Bot,串接到 n8n,實現自動回覆功能。全程不需要寫程式。                  

   

  ---                                                                                                      

  你會學到什麼                                              

              

  - 建立 LINE Bot(LINE Messaging API)

  - 設定 n8n Webhook 接收 LINE 訊息                                                                        

  - 解析使用者傳來的文字                                                                                   

  - 用 n8n 呼叫 LINE Reply API 自動回覆                                                                    

                                                                                                           

  ---                                                                                                      

  事前準備                                                  

          

  - n8n 已安裝並可從外部存取(本機開發可用 https://ngrok.com 暫時測試)

  - LINE 帳號                                                                                              

  - 約 20 分鐘(算上碰壁時間,約兩小時)

                                                                                                           

  ---                                                       

  Step 1:建立 LINE Bot                                                                                    

                                                            

  1. 前往 https://developers.line.biz/console/

(或是登入Line OA,點擊聊天設定,點擊message api 前往developer)

  2. 建立一個 Provider(可用你的工作室名稱) 

Line管理員後台創建provider

                                                             

  3. 建立新 Channel,類型選 Messaging API                

                                                 

 

創建新頻道

選類別

4. 填入 Channel 名稱、描述、類別           

                                                             

  5. 建立完成後,進入 Channel 頁面                                                                         

                                                                                                           

  你需要記下兩個東西:  (時常用到!)                                                                                   

                                                                                                           

  - Channel Secret(在 Basic settings 頁)                                                                 

  - Channel Access Token(在 Messaging API 頁,點 Issue 產生)

                                                                                                           

尋找ㄔtoken

                                         

                                                                                                     

  ---                                                                                                      

  Step 2:在 n8n 建立 Webhook 節點                          

                                                                                                           

  1. 打開 n8n,新增一個 Workflow

  2. 新增節點,搜尋 Webhook                                                                                

  3. 設定:                                                                                                

    - HTTP Method:POST

    - Path:自訂,例如 line-bot                                                                            

    - Authentication:None(LINE 有自己的驗證機制)  

                                                     

webhook 畫面

  4. 點 Listen for Test Event,複製 Webhook URL                                                            

                                                                                                           

  你的 Webhook URL 格式會長這樣:                                                                          

  https://你的n8n網址/webhook/line-bot                                                                     

                                                            

  ---                                                                                                      

  Step 3:把 Webhook URL 填入 LINE Developers

                                                                                                           

  1. 回到 LINE Developers Console                           

  2. 進入你的 Channel → Messaging API 頁                                                                   

  3. 找到 Webhook URL,貼上你的 n8n Webhook URL                                                            

  4. 點 Verify 確認連線成功                                                                                

  5. 開啟 Use webhook 開關                                                                                 

驗證Line連結

                                                                                                           

                                                            

  ---                                                                                                      

  Step 4:測試接收訊息                                      

                                                                                                           

  1. 用 LINE 掃描你的 Bot QR Code(在 Messaging API 頁面有)

  2. 加 Bot 為好友                                                                                         

  3. 傳一則訊息給 Bot                                                                                      

  4. 回到 n8n,應該可以看到 Webhook 接收到資料                                                             

                                                                                                           

  LINE 傳來的資料結構長這樣(重要的部分):                                                                

                                                                                                           

  {                                                                                                        

    "events": [                                             

      {

        "type": "message",

        "replyToken": "xxxxxxxxxxxxxxxx",

        "message": {                                                                                       

          "type": "text",

          "text": "你好"                                                                                   

        },                                                  

        "source": {                                                                                        

          "userId": "Uxxxxxxxxxxxxxxxx"

        }                                                                                                  

      }                                                     

    ]

  }

  你需要的兩個值:                                                                                         

  - events[0].replyToken:用來回覆這則訊息

  - events[0].message.text:使用者傳來的文字內容                                                           

                                                            

  ---                                                                                                      

  Step 5:設定自動回覆                                      

                                                                                                           

  新增一個 HTTP Request 節點:                              

 

http節點

  Body(JSON 格式):                                                                                      

   

  {                                                                                                        

    "replyToken": "{{ $json.events[0].replyToken }}",       

    "messages": [                                                                                          

      {

        "type": "text",                                                                                    

        "text": "你好!我收到你的訊息了:{{ $json.events[0].message.text }}"

      }                                                                                                    

    ]

  }                                                                                                        

                                                            

  ---

  Step 6:測試完整流程

                                                                                                           

  1. 啟動 Workflow(切換為 Active)

  2. 用 LINE 傳訊息給 Bot                                                                                  

  3. Bot 應該在幾秒內自動回覆                                                                              

                                                                                                           

  ▎ 截圖提示: LINE 對話畫面顯示 Bot 成功回覆                                                              

                                                                                                           

  ---                                                                                                      

  進階應用:根據關鍵字回覆不同內容                          

                                                                                                           

  你可以在 Webhook 和 HTTP Request 之間加入 IF 節點,判斷使用者傳的內容:

                                                                                                           

  使用者說「報價」→ Bot 回覆:「請填寫這份表單...」                                                        

  使用者說「預約」→ Bot 回覆:「請選擇時間...」                                                            

  其他內容      → Bot 回覆:「我不太懂你的意思,請輸入『報價』或『預約』」                                 

                                                                                                           

  這個功能非常適合接案工作室,讓 LINE Bot 幫你做第一線客服篩選。                                           

                                                                                                           

  ---                                                                                                      

  常見問題                                                  

          

  Q:Verify 一直失敗怎麼辦?

  確認你的 n8n 可以從外部網路存取。本機開發需要用 ngrok 建立公開 URL。                                     

                                                                                                           

  Q:Bot 沒有回覆訊息?                                                                                    

  檢查 Channel Access Token 是否正確,注意 Bearer 後面要有空格。                                           

                                                                                                           

  Q:replyToken 過期了?

  LINE 的 replyToken 只有 30 秒有效期,n8n workflow 要盡快執行,避免中間有太多延遲節點。                   

                                                                                                           

  ---

  小結                                                                                                     

                                                            

  LINE Messaging API 的功能遠比 LINE Notify 強大,雖然設定步驟多一些,但一旦串接完成,能做的事情非常多。   

                                                            

  如果你想讓這個 Bot 做更多事,例如串接 Google Sheets                                                      

  記錄訊息、或是根據資料庫內容回答問題,歡迎參考我的其他教學文章。

                                                                                                           

  ---                                                       

   聯絡我來串接!                                                                                                

  ---