問題
要串 LINE 官方帳號的 Messaging API,照舊教學到 LINE Developers Console 建 channel,會找不到入口;三個憑證又散在不同頁籤,也不好找。
解法
-
建 channel 一定從 OA Manager 走:manager.line.biz → 設定 → Messaging API → 啟用(會自動建 channel,並要求選或建 Provider)。官方文件寫明「已經不能直接從 LINE Developers Console 建立 Messaging API channel」,這個改變從 2024-09-04 起生效(Get started with the Messaging API,截至 2026-10 查閱仍是如此)。
-
三個憑證的位置(developers.line.biz/console → Provider → channel):
LINE_CHANNEL_ID、LINE_CHANNEL_SECRET→ Basic settings 頁籤LINE_CHANNEL_ACCESS_TOKEN→ Messaging API 頁籤最底部,按 Issue 產生(預設不存在,是「產生」不是「尋找」)
-
驗證憑證(唯讀、不吃額度):
curl -H "Authorization: Bearer $TOKEN" https://api.line.me/v2/bot/info # 200 = token 有效 curl -H "Authorization: Bearer $TOKEN" https://api.line.me/v2/bot/message/quota # 看方案額度我在 2026-07 用輕用量方案實測,quota 回的是
{"type":"limited","value":200}。另外實測 broadcast 成功時回 HTTP 200 加一個空 JSON,額度每個收件人算 1 則。 -
啟用後必關:OA Manager 回應設定裡的「自動回應訊息」「歡迎訊息」,否則內建的罐頭回覆會跟自己的 bot 打架。
為什麼這樣解
- LINE 把 channel 建立收斂到 OA Manager,Console 只留管理功能——舊教學(直接在 Console 建)全數失效,這是最大的坑。
- Provider 選擇是一次性的:官方文件寫明 Provider 指派後不能更換或取消,而且同一個使用者在不同 Provider 底下的 userId 不同(同上連結)。所以日後可能要整併的幾個服務,channel 應該掛在同一個 Provider 下,不然同一個人會被當成不同使用者。
- 額度模型:push、multicast、broadcast、narrowcast 計入每月訊息則數;reply 不計入(Messaging API pricing;台灣的官方說明也把 Reply API 列在不計費的訊息類型,見 LINE 官方帳號方案頁)。這一點我是照官方定價文件寫的,沒有實測。台灣的輕用量方案月費 0 元、免費訊息 200 則,官方公告寫明 2026-11-01 的價格調整後這兩項維持不變(LINE 官方帳號 2026 價格方案調整,2026-10 查閱)。系統設計上的結論是:能 reply 就不要 push。
怎麼預防再次發生
- 把建立流程和憑證位置寫成專案裡的操作指南,下次不用再翻一次。
- 憑證(secret/token)別貼進聊天室、issue 或文件;提供
.env.example,讓值直接落地到 gitignored 的.env。 - token 若曾暴露:到 Console 對應頁籤按 Reissue,舊值即作廢。
相關
- Webhook 設計:發送可靠性與接收安全驗證:接 LINE webhook 時,接收端的簽名驗證與重試處理