連結 LINE 官方帳號
完成 LINE Messaging API 設定 · 沒有審核流程,從建立到收第一則訊息約 15 分鐘
重要觀念: LINE 平台上有三種 channel 容易搞混:
- Messaging API Channel — 用來收發 OA 訊息(本指南的主角)
- LINE Login Channel — 用來做「Login with LINE」(Hailory 主要登入方式之一)
- LIFF App — 內嵌在 OA 對話的 webview,做客製化表單時會用到
建立 LINE Official Account
到 LINE for Business 建立 OA 帳號(用個人 LINE 登入即可)。
方案速覽:
- 免費 Light Plan:每月 200 則推播額度
- Basic Plan NT$880/月:5,000 則推播
- Pro Plan NT$1,950/月:30,000 則推播
好消息: Hailory 大多用 Reply API(用 reply_token 回覆使用者訊息), 這個不計入推播額度。免費方案配 Hailory 用通常綽綽有餘。
建立 Messaging API Channel
到 LINE Developers Console(用同一個 LINE 帳號登入):
- 選擇 Provider(沒有就建一個 — Provider 是組織單位,例如「Hailory Workspaces」)
- Create new channel → 選 Messaging API
- 填寫:
- Channel name — 通常等於 OA 名稱
- Channel icon — OA 的頭像
- Channel description — 簡短說明
- Category / Subcategory — 選最接近的
- Email — 收 LINE 平台通知
- 勾選同意條款 → Create
關閉 LINE 內建自動回覆 / 開啟 Webhook
這步最容易踩坑 — LINE 內建的「自動回覆訊息」會搶在 Hailory 之前處理訊息。
在 channel 設定 → Messaging API tab:
- Webhook URL:
https://{your-domain}/webhook/line - Use webhook: 開啟
- Webhook redelivery: 開啟(Hailory 失敗時 LINE 會重送)
在 LINE Official Account features 區塊:
- Auto-reply messages: 關閉 ⚠️
- Greeting messages: 自行決定(用 Hailory 的歡迎訊息可關掉這個)
Auto-reply 沒關,Hailory 永遠收不到訊息 — LINE 會用內建的「謝謝您的訊息」回覆, 然後不送 webhook 過來。Console 上這個開關藏在「LINE Official Account features」區塊底下,要點過去。
取得 Channel Access Token + Channel Secret
同一個 channel 設定頁面,分別在兩個 tab:
- Messaging API → Channel access token → 點「Issue」生成 → 複製這串長 token
- Basic settings → Channel secret → 直接複製
Channel secret 是密碼等級的祕密。它在 Hailory 後台會用 AES-256 加密存 DB,不會以明文出現在任何 UI / log 上。 若不小心外洩,到 Console 點「Issue new」會立即作廢舊的。
取得 Destination ID(Bot 的 LINE userId)
Destination 是 LINE webhook 用來指認「這則訊息要給哪個 OA」的 ID。每個 OA 一個,固定不變。
取得方式:
- 到 Console → 你的 channel → Messaging API tab
- 找「Your user ID」欄位 — 開頭是
U+ 32 個英數字
備案: 找不到 Your user ID 的話,用你的個人 LINE 加好 OA、傳一則「test」, 到 Console → Webhook redelivery → 看 webhook 收到的 payload, 其中
destination 欄位就是。在 Hailory 連結帳號
回到 Hailory 的 「頻道管理」,點「+ 新增帳號」→ 選 LINE,照連結精靈貼上前面拿到的資料。精靈會分步檢查 token、secret 和 destination,成功後才建立帳號。
- 顯示名稱:你的 OA 名稱(會顯示在 Hailory 後台)
- Destination ID:步驟 5 的 Your user ID(U 開頭)
- Channel access token:步驟 4 產生的長 token
- Channel secret:步驟 4 的 Basic settings 欄位
進階備案: 若你正在用舊版表單或需要人工補資料,Channel 請選
line,External ID 填 destination userId,Channel config 填 {"channel_secret":"你的-channel-secret"}。驗證 webhook 連通
回到 LINE Developers Console → Messaging API tab → Webhook 區塊 → 點 Verify。
看到 Success 就成功了。從你的個人 LINE 搜尋 OA 加好友 → 傳「hi」測試。
看 Hailory 的 訊息紀錄 應該即時看到一筆進線訊息出現。首頁的最近接收時間也會更新。
完成前自檢
這兩項是 LINE OA 串接最常出錯的地方。都確認後,再用自己的 LINE 傳訊息測試。
(選用)建立 LIFF App — 客製化表單需要
如果你會用 Hailory 的「Custom Form (LIFF)」模組(讓客戶在 LINE 內填表單), 需要另外建立一個 LINE Login channel + LIFF App:
- Developers Console → 同一個 Provider → Create new channel → 選 LINE Login
- App types 勾「Web app」
- 建立後到 LIFF tab → Add LIFF app
- 填入 endpoint URL:
https://{your-domain}/liff/custom-form - Size 選「Full」
- Scopes 至少勾:
profile、openid - Bot link feature: On(重要 — 讓 LIFF 能 push 訊息給填表的人)
- 複製 LIFF ID(格式像
2000123456-AbCdEf12)
LIFF 三道前提(缺一就無法 push 訊息給用戶):
- LIFF 同意
chat_message.writescope(要先用 prompt 模式請用戶同意) - 用戶必須先加 OA 為好友(按 Bot link)
- LIFF 內呼叫
liff.sendMessages()時 OA 對話視窗必須是開啟狀態
常見障礙與排除
- Verify 失敗(403 / 400)
- · 95% 是 channel_secret 填錯(複製時掉字 / 多空格)— 重新複製貼上
· Hailory 必須能用 HTTPS 從外網被 LINE 連到(本地測試請用 ngrok)
· 到 Hailory 的系統事件紀錄,找同一個時間點的錯誤訊息 - OA 沒有任何回覆
- · 確認步驟 3 的 Auto-reply 已關閉(這是 80% 的成因)
· 確認你已被加為 OA 的「好友」(從個人 LINE 搜尋並加)
· 確認規則已啟用,關鍵字也確實命中(用 測試 工具)
· 到系統狀態看「待發訊息」是否累積很久;若是,代表背景發送暫時卡住 - 推播額度爆掉
- · Reply API(用 reply_token 在 1 分鐘內回覆)不計額度
· Push API(主動推播 / 過了 reply window)計入額度
· Hailory 預設優先用 Reply,過 50 秒才退到 Push(保守一點降低風險)
· Broadcast 模組會大量用 Push,免費方案 200 則跑不久 — 建議升級 Basic - LIFF 表單送出後沒收到通知
- · 用戶沒同意
chat_message.write(一旦上線後新增此 scope,舊用戶需用 prompt 模式重新同意)
· LIFF SDK 版本太舊(用 v2 以上)
· 用戶是「黑名單封鎖」OA 的狀態(不是普通的退追蹤)