LINE 已讀 API 遷移指南:2026 年 10 月前改用 markAsRead
若要從 LINE Mark as read API(舊版)遷移,請從 Messaging API 的 webhook 訊息事件取得 markAsReadToken,再呼叫 POST https://api.line.me/v2/bot/chat/markAsRead。新 endpoint 不必另外申請,而且能與 Official Account Chat 一起使用。LINE 將在 2026 年 10 月底停止接受舊 API 的新申請,但沒有宣布在當天停用現有整合。
重點摘要
- LINE 在 2026 年 5 月 18 日宣布,舊版企業功能將於 10 月底關閉新申請;已核准帳號仍可繼續使用。
- 新 endpoint 接收 webhook 訊息事件中的不透明
markAsReadToken,不能由使用者 ID 或message.id自行組合。 POST /v2/bot/chat/markAsRead會將指定訊息以及更早的訊息一起標示為已讀,因此呼叫順序與確認時機都很重要。- 新 endpoint 可配合 Official Account Chat;舊 API 不行,所以這也是客服流程的遷移。
- UnifyPort 可處理一般帳號的獨立入站訊息,但沒有 message-read API,也不會產生 LINE 官方的
markAsReadToken。
LINE 已讀 API 遷移改變了什麼
LINE 的 5 月 18 日通知並非「10 月停用」公告。通知內容是:2026 年 10 月底停止接受 Mark as read API(舊版)的新申請、已核准帳號可繼續使用,且 LINE 正在考慮未來停止該舊功能。新開發應改用 Messaging API 的將訊息標示為已讀流程。
兩個契約不同,不能只更換 endpoint:
| 判斷項目 | Mark as read API(舊版) | Messaging API markAsRead |
|---|---|---|
| 存取資格 | 需申請的企業選用功能 | 不需另外申請 |
| Chat 功能 | 無法與 Official Account Chat 共用 | 手動標示已讀時需開啟 Chat |
| 輸入值 | 舊 API 的使用者導向契約 | webhook 訊息事件的 markAsReadToken |
| 影響範圍 | 顯示某位使用者訊息的已讀狀態 | 將 token 對應訊息及更早訊息標示為已讀 |
| 新專案建議 | 不建議 | 官方建議 |
若在 LINE Official Account Manager 關閉 Chat,使用者訊息會自動標示為已讀,這時不必增加 API 呼叫。新 endpoint 適合保持 Chat 開啟、但要由後端控制已讀出現時機的團隊。
如何遷移至 POST /v2/bot/chat/markAsRead
1. 先定義客服流程中的「已讀」
決定哪個業務節點應向使用者顯示已讀:訊息進入佇列、客服實際開啟,或自動處理器已接手。不要把「webhook 已送達」直接當成「真人已讀」。由於一次呼叫可能確認多則待處理訊息,請先把規則寫入操作流程。
盤點所有舊 API 呼叫端、重試工作、Official Account 與環境,並記錄 Chat 是否開啟。舊 API 文件指出,啟用舊功能會停用自動已讀,且不能同時使用 Chat;帳號設定本身就是遷移資料。
2. 將 webhook read token 視為不透明值
使用者傳訊給 LINE Official Account 時,Messaging API 的訊息事件可能包含 message.markAsReadToken。LINE 表示 read token 沒有到期日,但 reference 也標示該欄位不一定存在。缺少時應記錄並維持未讀,不能從 message.id 推算或自行建立 token。
請把 token 與 webhook event ID、message ID、對話負責人、接收時間和處理狀態一起保存。不要將它寫入分析標籤或前端紀錄;即使它不是 channel access token,仍是 LINE webhook 契約提供的動作憑證。
3. 呼叫 Messaging API endpoint
使用符合目前實際處理進度的最新 token:
curl -X POST "https://api.line.me/v2/bot/chat/markAsRead" \
-H "Authorization: Bearer ${LINE_CHANNEL_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"markAsReadToken":"30yhdy232..."}'
官方 reference 記載:成功時回傳 200 與空 JSON,read token 無效時回傳 400,rate limit 是每秒 2,000 次。成功呼叫會影響指定訊息及更早訊息,不只是一筆資料庫紀錄。
4. 維持對話內順序與重試界線
依對話處理已讀確認。若訊息 B 晚於訊息 A,確認 B 也會涵蓋 A。全域 worker 若讓同一對話的 token 競爭,就可能在內部工作尚未完成前,讓使用者提早看到已讀。
呼叫 LINE 前先保存「準備確認」狀態,呼叫後再記錄回應。將 400 視為契約或資料錯誤;timeout 或伺服器錯誤則依 LINE 最新的一般重試指引設定上限,不要無限重試。紀錄應能追溯 token 與觸發它的業務事件。
5. 以帳號為單位驗收
使用非正式環境 Official Account 或受控測試對話,在 Chat 開啟時確認:
- 使用者訊息建立含
markAsReadToken的 webhook 事件; - 約定節點前不顯示已讀;
- 到達節點後 endpoint 回傳
200; - 當前與更早訊息顯示已讀;
- token 缺失或無效時不會誤認後續訊息;
- 遷移後 Official Account Chat 仍正常運作。
新路徑與真人 Chat 都通過後再移除舊呼叫。10 月是新申請截止,不是現有用戶必須倉促切換的停用日。
UnifyPort 適合放在哪裡
官方 markAsReadToken 流程屬於 LINE Official Account 與 Messaging API。只要 LINE 用戶端必須顯示官方已讀狀態,就應保留這條官方路徑。
UnifyPort 處理另一項需求:連接一般 LINE 帳號後,將支援的入站對話以標準化 message.received 事件送到後端,並與 WhatsApp、Telegram、TikTok、Zalo、X 共用相同 envelope。webhook endpoint 設定 signing_secret 後,會透過 X-Device-Timestamp 與 X-Device-Signature 驗證 HMAC-SHA256。
該事件不含 LINE 官方 markAsReadToken,而且 UnifyPort 現行文件明確表示沒有 message-read API。請把 Official Account 已讀 worker 與 UnifyPort 入站 worker 當作兩項獨立能力。
前置選擇可參考不註冊 Official Account 接收 LINE 訊息與為什麼 LINE analytics polling 不是入站路由。
限制與取捨
需要 Official Account 身分、Chat、官方已讀回條、rich menu、audience 工具或其他 LINE 原生控制時,Messaging API 是正確選擇;新的 markAsRead endpoint 就是官方已讀路徑。
非官方接口不能授予 Official Account 功能、變更 LINE 申請政策,也不能將 Official Account 對話標示為已讀。後端收到訊息也不代表真人已查看。若只需要跨渠道入站佇列,可另行評估;若 LINE 畫面必須出現「已讀」,架構中仍需官方 endpoint。
FAQ
LINE Mark as read API(舊版)會在 2026 年 10 月停用嗎?
沒有這項公告。LINE 會在 10 月底停止接受新申請,已核准帳號可繼續使用;官方正在考慮未來停止舊功能並建議遷移。
新的 LINE markAsRead endpoint 需要申請嗎?
不需要。它使用 channel access token 與 Messaging API webhook 訊息事件中的 markAsReadToken。
markAsRead 能與 LINE Official Account Chat 共用嗎?
可以。使用 Messaging API 手動標示已讀時 Chat 必須開啟;若 Chat 關閉,入站訊息會自動標示為已讀。
markAsReadToken 會過期嗎?
LINE 目前表示 read token 沒有到期日,但仍應依營運與資料保留政策保存,並使用對應實際確認節點的 token。
UnifyPort 能將 LINE Official Account 訊息標示為已讀嗎?
不能。UnifyPort 可傳遞連接 LINE 帳號的支援入站訊息,但沒有 message-read API,也不提供官方 markAsReadToken。
下一步
將舊呼叫端對照 LINE 官方將訊息標示為已讀指南,並在受控 Official Account 完成六項驗收。若另一項需求是一般帳號入站路由,再查看 UnifyPort 的 LINE 授權指南設計第二條獨立路徑。
來源
以下 LINE 官方來源核對於 2026 年 7 月 25 日: