問題

要串 LINE 官方帳號的 Messaging API,照舊教學到 LINE Developers Console 建 channel,會找不到入口;三個憑證又散在不同頁籤,也不好找。

解法

  1. 建 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 查閱仍是如此)。

  2. 三個憑證的位置(developers.line.biz/console → Provider → channel):

    • LINE_CHANNEL_ID、LINE_CHANNEL_SECRET → Basic settings 頁籤
    • LINE_CHANNEL_ACCESS_TOKEN → Messaging API 頁籤最底部,按 Issue 產生(預設不存在,是「產生」不是「尋找」)
  3. 驗證憑證(唯讀、不吃額度):

    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 則。

  4. 啟用後必關: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,舊值即作廢。

相關