2026年10月24日 星期六

LINE Messaging API 實作: 申請與第一則推播(上)

LINE Notify 已在 2025 年 3 月 31 日終止服務,先前介紹的 LINE Notify 權杖申請與 Python 推播方式已經無法使用。LINE 官方建議的替代方案是 LINE Messaging API,不只能推播通知,還能做雙向互動的聊天機器人。

本系列分成上、下兩篇:

  • 上篇(本文):申請與設定,取得 Channel access token 與 User ID,並用 curl 完成第一則推播測試。
  • 下篇:以 Python 與 Google Apps Script 實作推播、Webhook 回覆、群組推播,以及搭配 ESP32 感測器的應用。

一、LINE Notify 與 Messaging API 有什麼不同?

比較項目LINE Notify(已停用)LINE Messaging API
訊息方向單向通知雙向互動(可接收使用者訊息)
接收對象綁定權杖的個人或群組需先加入官方帳號為好友(或將機器人加入群組)
訊息格式文字、圖片、貼圖文字、圖片、影片、Flex Message 卡片等
費用免費有每月免費額度,超過依方案計費

費用提醒

Messaging API 的訊息則數是以實際收到訊息的人數計算,一次請求裡放幾個訊息物件不影響則數;被封鎖的使用者不計費。另外,主動發送的 Push 訊息才會計入額度,使用者先傳訊息、你再用 Reply 回覆則不計。個人小專案請留意每月推播量,詳細方案與額度請以 LINE 官方頁面為準:Messaging API pricing。

二、事前準備

  • 一個 LINE 帳號(手機已安裝 LINE)
  • 電腦上的瀏覽器
  • 可執行 curl 的環境(Windows 10/11 的 PowerShell、macOS、Linux 皆可),或安裝 Postman

三、建立 LINE 官方帳號並啟用 Messaging API

注意:自 2024 年 9 月 4 日起,已經不能直接在 LINE Developers Console 建立 Messaging API channel,必須先建立 LINE 官方帳號再啟用。網路上許多舊教學的順序已經不適用。

步驟 1:登入 LINE Developers 並建立 Provider

  1. 開啟 LINE Developers Console,使用 LINE 帳號登入。
  2. 第一次使用時,填寫開發者名稱與電子郵件,建立開發者帳戶。
  3. 點選 Create new provider,輸入 Provider 名稱(例如個人名稱或工作室名稱)。

小提醒:Provider 一旦與官方帳號的 Messaging API 綁定後就無法變更,命名時請想清楚。

步驟 2:建立 LINE 官方帳號

  1. 開啟 LINE Official Account Manager。
  2. 建立新的官方帳號,填寫帳號名稱、業種等基本資料。
  3. 方案選擇「輕用量方案」即可(有每月免費訊息額度)。

步驟 3:啟用 Messaging API

  1. 在 Official Account Manager 進入剛建立的帳號,點選右上角「設定」。
  2. 左側選擇 Messaging API,按下「啟用 Messaging API」。
  3. 選擇剛才建立的 Provider(也可以在這裡直接新建)。
  4. 啟用完成後,回到 LINE Developers Console,就會在該 Provider 底下看到對應的 Messaging API channel。

※ 後台畫面可能隨 LINE 改版略有不同,請以實際畫面的選單名稱為準。

步驟 3.5:關閉罐頭自動回覆

官方帳號預設會開啟「歡迎訊息」與「自動回應訊息」。之後要用程式收發訊息,建議到「設定 → 回應設定」把自動回應訊息關閉,避免和程式回覆重複。

四、取得兩組重要憑證

在 LINE Developers Console 進入你的 Messaging API channel:

  1. Channel secret:在 Basic settings 頁籤,後續驗證 Webhook 簽章時會用到(下篇使用)。
  2. Channel access token:在 Messaging API 頁籤最下方,按下 Issue 發行「Channel access token(long-lived)」,複製下來。

資安提醒:Channel access token 等同於機器人的密碼,任何人拿到都能以你的官方帳號發訊息。切勿貼在公開文章、GitHub 或截圖中;程式碼中建議改以環境變數或安全的設定檔儲存。

五、取得你自己的 User ID

推播需要指定接收者的 User ID(以 U 開頭,共 33 個字元)。這不是你在 LINE 設定的 ID。取得自己的 User ID:

  1. 在 LINE Developers Console 的 Basic settings 頁籤,捲到最下方的 Your user ID,複製即可。

  2. 在 Messaging API 頁籤用手機 LINE 掃描 QR code,把你的官方帳號加為好友。使用者必須先加好友,才能收到推播。

六、用 curl 發送第一則推播

把 {Channel access token} 與 {User ID} 換成你自己的值(連同大括號一起換掉):

curl -X POST https://api.line.me/v2/bot/message/push \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {Channel access token}" \
-d '{
  "to": "{User ID}",
  "messages": [
    {
      "type": "text",
      "text": "Hello,這是 Messaging API 的第一則推播!"
    }
  ]
}'

成功時會回傳 {}(HTTP 200),手機 LINE 隨即收到訊息。

Windows 使用者注意:傳統命令提示字元(cmd)對單引號與換行的處理不同,建議改用 PowerShell,或直接使用 Postman:Method 選 POST、網址填 https://api.line.me/v2/bot/message/push、Headers 加上上述兩個欄位,Body 選 raw / JSON 貼上內容即可。

常見錯誤

回應可能原因
401 Authentication failedChannel access token 貼錯、少複製,或沒有 Bearer 前綴
400 Invalid request body / toUser ID 格式錯誤,或 JSON 格式不正確
429 Too Many Requests / 額度用盡超過頻率限制或當月免費訊息額度
狀態 200 但手機沒收到尚未將官方帳號加為好友,或已封鎖該帳號

小結與預告

本篇完成了 Messaging API 的申請、啟用與第一則推播。下一篇將以 Python 與 Google Apps Script 改寫先前的 LINE Notify 範例,並介紹 Webhook 接收訊息、Reply 回覆、群組推播,最後搭配 ESP32 感測器在異常時自動通知。

參考資料:LINE Developers - Messaging API overview

沒有留言:

張貼留言

熱門文章