連結 LINE 官方帳號

完成 LINE Messaging API 設定 · 沒有審核流程,從建立到收第一則訊息約 15 分鐘

重要觀念: LINE 平台上有三種 channel 容易搞混:
  • Messaging API Channel — 用來收發 OA 訊息(本指南的主角)
  • LINE Login Channel — 用來做「Login with LINE」(Hailory 主要登入方式之一)
  • LIFF App — 內嵌在 OA 對話的 webview,做客製化表單時會用到
1

建立 LINE Official Account

LINE for Business 建立 OA 帳號(用個人 LINE 登入即可)。

LINE Official Account Manager 建立帳號的位置示意
人工後補正式截圖前,先依這個版位放操作示意。

方案速覽:

  • 免費 Light Plan:每月 200 則推播額度
  • Basic Plan NT$880/月:5,000 則推播
  • Pro Plan NT$1,950/月:30,000 則推播
好消息: Hailory 大多用 Reply API(用 reply_token 回覆使用者訊息), 這個不計入推播額度。免費方案配 Hailory 用通常綽綽有餘。
2

建立 Messaging API Channel

LINE Developers Console(用同一個 LINE 帳號登入):

  1. 選擇 Provider(沒有就建一個 — Provider 是組織單位,例如「Hailory Workspaces」)
  2. Create new channel → 選 Messaging API
  3. 填寫:
    • Channel name — 通常等於 OA 名稱
    • Channel icon — OA 的頭像
    • Channel description — 簡短說明
    • Category / Subcategory — 選最接近的
    • Email — 收 LINE 平台通知
  4. 勾選同意條款 → Create
LINE Developers Console 建立 Messaging API Channel 的示意
確認選的是 Messaging API,不是 LINE Login。
3

關閉 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」區塊底下,要點過去。
Webhook URL、Use webhook、Auto-reply messages 開關位置示意
最重要的兩件事:Use webhook 開啟,Auto-reply messages 關閉。
4

取得 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」會立即作廢舊的。
Channel access token 與 Channel secret 所在位置示意
Access token 貼到連結精靈會自動驗證;Channel secret 在最後一步貼上。
5

取得 Destination ID(Bot 的 LINE userId)

Destination 是 LINE webhook 用來指認「這則訊息要給哪個 OA」的 ID。每個 OA 一個,固定不變。

取得方式:

  1. 到 Console → 你的 channel → Messaging API tab
  2. 找「Your user ID」欄位 — 開頭是 U + 32 個英數字
備案: 找不到 Your user ID 的話,用你的個人 LINE 加好 OA、傳一則「test」, 到 Console → Webhook redelivery → 看 webhook 收到的 payload, 其中 destination 欄位就是。
Messaging API tab 裡 Your user ID 欄位的位置示意
Destination ID 就是 Your user ID,通常以 U 開頭。
6

在 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"}
Hailory LINE 連結精靈示意
優先使用連結精靈;手動 JSON 只留給進階或舊版表單。
7

驗證 webhook 連通

回到 LINE Developers Console → Messaging API tab → Webhook 區塊 → 點 Verify

看到 Success 就成功了。從你的個人 LINE 搜尋 OA 加好友 → 傳「hi」測試。

看 Hailory 的 訊息紀錄 應該即時看到一筆進線訊息出現。首頁的最近接收時間也會更新。
LINE Developers Console Webhook Verify 成功示意
Verify 成功後,再用自己的 LINE 傳訊息做一次真人測試。

完成前自檢

這兩項是 LINE OA 串接最常出錯的地方。都確認後,再用自己的 LINE 傳訊息測試。

Webhook URL 已設定並開啟

Messaging API 頁面要看到 Webhook URL,且 Use webhook 是開啟狀態。

去這裡檢查
自動回應已關閉

OA Manager 的 Auto-reply messages 要關閉,否則 LINE 會先吃掉訊息。

去這裡檢查
8

(選用)建立 LIFF App — 客製化表單需要

如果你會用 Hailory 的「Custom Form (LIFF)」模組(讓客戶在 LINE 內填表單), 需要另外建立一個 LINE Login channel + LIFF App:

  1. Developers Console → 同一個 Provider → Create new channel → 選 LINE Login
  2. App types 勾「Web app」
  3. 建立後到 LIFF tab → Add LIFF app
  4. 填入 endpoint URL: https://{your-domain}/liff/custom-form
  5. Size 選「Full」
  6. Scopes 至少勾:profileopenid
  7. Bot link feature: On(重要 — 讓 LIFF 能 push 訊息給填表的人)
  8. 複製 LIFF ID(格式像 2000123456-AbCdEf12
LIFF 三道前提(缺一就無法 push 訊息給用戶):
  1. LIFF 同意 chat_message.write scope(要先用 prompt 模式請用戶同意)
  2. 用戶必須先加 OA 為好友(按 Bot link)
  3. LIFF 內呼叫 liff.sendMessages() 時 OA 對話視窗必須是開啟狀態
LINE Login channel 的 LIFF app 設定位置示意
LIFF 是選用項;只需要 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 的狀態(不是普通的退追蹤)