n8n 是一個很方便的自動化工具,只要寫少少的 code 就可以幫你完成很多事情,這邊來介紹一下如果我們要從 n8n 發送訊息至 Line 該怎麼做。
Step1: 申請 Line 官方帳號與設定
首先到 Line 開發者的系統申請一個官方帳號。
接著建立一個 Provider
接著再從 Provider 建立 Messaging API Channel
接著從 Messaging API 頁籤那邊設定
設定 Webhook 網址,並要開啟 Webhook,這個是你的系統(n8n)要接收 Line 發送訊息的網址。
然後在最下面取得 Channel access token
Step2: 取得 Line user id
上面都設定完了,就可以到 n8n 建立一個新的工作流,我們要來取得要發送的目標的 user id。
工作流建立後新增 Webhook 節點,並做以下設定,主要是設定 Path,然後上面的網址就會是先前一個步驟要設定的 Line Webhook 的網址。
接著新增 Code 節點,用來抓取 user id,新增後程式碼如下:
const b = $json.body || $json; const e = b?.events?.[0] || {}; const isText = e?.type === 'message' && e?.message?.type === 'text'; return [{ userId: e?.source?.userId || null, // U 開頭 text: isText ? e.message.text : null }];
這個節點就是取得 Line 發送過來訊息的 userId 跟訊息內容,成功的話會看到類似下面的輸出,再把 userId 記錄下來。
Step3: 發送訊息至 Line
接著如果要發送訊息至 Line,只要建立一個 Http Request 的節點,然後做以下設定:
勾選 Send Header 並設定
- Method: POST
- URL: https://api.line.me/v2/bot/message/push
- Headers:
- Authorization: Bearer LINE_CHANNEL_ACCESS_TOKEN
- Content-Type: application/json
LINE_CHANNEL_ACCESS_TOKEN 就是之前在 Line 那邊取得的一串很長的內容。
然後勾選 Send Body 並設定,把 Body Content Type 設定為 JSON,Specify Body 也設定 Using JSON
{ "to": BOT 的 userId, "messages": [ { "type": "text", "text": "要發送的內容" } ] }
成功的話就能看到這樣的訊息了:
我在天地人學堂有開一門「3 小時掌握自動化工作新手應用實作 – n8n AI Agent」 的課,輸入折扣碼 TC1600UY 還可以有 500 元的優惠,有興趣的不妨參考看看。