抱歉,您的瀏覽器無法訪問本站
本頁面需要瀏覽器支持(啟用)JavaScript
了解詳情 >

上一章是 n8n 主動推一則 Hello from n8n!。這一章反過來:手機傳進官方帳號的東西,要進到 n8n。

工作流用「【教學】LINE OA 接收實驗」。一個官方帳號只能掛一條 Webhook,接收和回覆都走這一條。

開始前準備這幾項:

  • 上一章的官方帳號已經加在手機上,自動回應是關的。
  • n8n 這條工作流已發布。沒發布的話,LINE 觸發時不會跑。
  • 憑證仍是上一章那筆 Line Messaging。

Reply token 只能用一次,而且大約 60 秒內要回完。這一章的回覆都用它,不走 Push。

1. 把 Webhook 貼回 LINE

第 1/1 步:複製 Production URL,貼到 Webhook settings

打開「LINE 收到事件」。複製的是 Production URL,不是 Test URL。Test URL 只有你在 n8n 按監聽時才吃得到。

回到這個 channel 的 Messaging API 分頁,Webhook settings 按 Edit,貼上那個 URL。打開 Use webhook,按 Verify。要看到 Success。

LINE 的伺服器觸發不到 localhost。n8n 若只開在自己電腦上,Production URL 必須是 LINE 連得到的網址,再貼回去。

2. 事件、類型、指令

進來的每一筆先看它是哪一種事件。只有「訊息」才繼續看訊息類型。只有「文字」才進指令。

第 1/4 步:打開 LINE 收到事件的參數畫面

① 「LINE 收到事件」是放上畫布之後的名稱。

② 節點面板先選 Line Messaging。

③ 展開 Triggers。On message、On follow 只聽一種事件。這一章要同時收訊息、按鈕、加好友,所以選 On all。

④ 放上畫布後,把名稱改成「LINE 收到事件」。

⑤ 在「LINE 收到事件」上點兩下。中間是參數。左邊寫 Pull in events from Line Messaging。這欄在等官方帳號把事件送進來,不接上一個節點的輸出。右邊是 No trigger output,代表還沒收到測試事件。

⑥ 上方的 Execute step 只聽一次。這一章不靠它收訊息。手機傳進來,走已發布的 Production URL。

中間要對的欄位:

  • Webhook URLs:展開後選 Production URL。上一節貼到 LINE 的就是這一條。Test URL 的路徑有 webhook-test,只有在這個畫面按監聽時才吃得到。
  • Credential:選上一章那筆 Line Messaging account。token 留在憑證裡,不要再貼進節點。
  • Trigger On:留 Message、Postback、Follow。這三個對上後面的訊息、按鈕、加好友。沒選到的事件不會進來。

第 2/4 步:依事件分流

① 「依事件分流」是畫布上的名稱。節點面板搜尋 Switch,選 Switch。這是 n8n 內建節點,點下去就放上畫布。放上之後,把名稱改成「依事件分流」。

② 在它上面點兩下。參數用 Routing Rules,一條規則一個出口。比的是 $json.type。

③ Routing Rule 1:{{ $json.type }},is equal to,值填 message。打開 Rename Output,Output Name 填「訊息」。這支進下一層。

④ Routing Rule 2:同樣比 $json.type,is equal to postback。Output Name 填「按鈕」。交給「拆開按鈕資料」。

⑤ Routing Rule 3:畫面上展開的這條。{{ $json.type }} is equal to follow,Rename Output 是開的,Output Name 是「加好友」。交給「回覆歡迎訊息」。

⑥ 拉到 Options。Fallback Output 選 Extra Output。Rename Fallback Output 填「其他」。三條規則都不符合的事件走這裡,只進「記下未處理事件」,不回覆。上一步的 Trigger On 沒選 unfollow、join,所以這支平常是空的。

第 3/4 步:依訊息類型分流

① 「依訊息類型分流」是畫布上的名稱。和上一步同一個節點:面板搜尋 Switch,選 Switch。放上畫布後改名。它接在「依事件分流」的「訊息」出口。

② 點兩下。Routing Rules 比的是 {{ $json.message?.type || "" }}。整句文字先不要拿來比。每一條都打開 Rename Output。

③ Routing Rule 1:{{ $json.message?.type || "" }},is equal to text。Rename Output 打開,Output Name 填「文字」。這支進下一層。

④ Routing Rule 2:{{ $json.message?.type || "" }},is equal to image。Rename Output 打開,Output Name 填「圖片」。接到「回覆非文字」。

⑤ Routing Rule 3:{{ $json.message?.type || "" }},is equal to video。Rename Output 打開,Output Name 填「影片」。接到「回覆非文字」。

⑥ Routing Rule 4:{{ $json.message?.type || "" }},is equal to audio。Rename Output 打開,Output Name 填「語音」。接到「回覆非文字」。

⑦ Routing Rule 5:{{ $json.message?.type || "" }},is equal to file。Rename Output 打開,Output Name 填「檔案」。接到「回覆非文字」。

⑧ Routing Rule 6:{{ $json.message?.type || "" }},is equal to location。Rename Output 打開,Output Name 填「位置」。接到「回覆非文字」。畫面上這條是收合的。

⑨ Routing Rule 7:畫面上展開的這條。{{ $json.message?.type || "" }},is equal to sticker。Rename Output 打開,Output Name 填「貼圖」。接到「回覆非文字」。

⑩ Options 的 Fallback Output 選 Extra Output,Rename Fallback Output 填「其他」。

Rule 2 到 Rule 7,加上「其他」,都接到「回覆非文字」。回覆會寫收到哪一種類型,這一章先處理文字。傳一句話,或傳 /help。

第 4/4 步:文字才依指令分流

① 「依指令分流」是畫布上的名稱。和前兩步同一個節點:面板搜尋 Switch,選 Switch。放上畫布後改名。它接在「依訊息類型分流」的「文字」出口。

② 點兩下。Routing Rules 比的是 {{ $json.message?.text ?? "" }}。每一條都打開 Rename Output。

③ Routing Rule 1:{{ $json.message?.text ?? "" }},is equal to /help。Output Name 填「說明」。接到「回覆指令說明」。

④ Routing Rule 2:{{ $json.message?.text ?? "" }},is equal to /my-uid。Output Name 填「查 UID」。接到「查用戶資料」。

⑤ Routing Rule 3:{{ $json.message?.text ?? "" }},is equal to /postback。Output Name 填「訂單按鈕」。接到「回覆訂單按鈕」。

⑥ Routing Rule 4:{{ $json.message?.text ?? "" }},is equal to /label。Output Name 填「Flex 卡片」。接到「回覆 Flex 卡片」。畫面上這條是收合的。

⑦ Routing Rule 5:畫面上展開的這條。{{ $json.message?.text ?? "" }},運算子是 starts with,值填 /ai。Output Name 填「AI」。先接到「顯示讀取動畫」,再交給實驗助教。

⑧ Options 的 Fallback Output 選 Extra Output,Rename Fallback Output 填「原樣回覆」。其他文字走這裡,原樣回覆,並帶上 quoteToken。

圖片、貼圖不會走到這裡。它們在上一步就停了。

做完的檢查

  • LINE 的 Verify 是 Success,Use webhook 是開的。
  • 傳一句普通話,官方帳號原樣回你。
  • 傳一張貼圖或圖片,回覆裡看得到類型名稱,而且叫你改傳文字。
  • 傳 /help,看得到指令說明。

下一步

/my-uid、Flex 按鈕、Flex 卡片和 /ai 都已經接在第三層。下一章再逐個打開這些文字指令。

完整工作流

這一章的工作流在這裡:【教學】LINE OA 接收實驗。

留言