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 並設定

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 元的優惠,有興趣的不妨參考看看。