Как перейти со старого LINE Mark as Read API до конца октября 2026 года
Для перехода с LINE Mark as read API (old) получайте markAsReadToken из события сообщения в webhook Messaging API и передавайте его в POST https://api.line.me/v2/bot/chat/markAsRead. Новый endpoint не требует отдельной заявки и совместим с Official Account Chat. В конце октября 2026 года LINE прекратит принимать новые заявки на старый API, но не объявляла об отключении действующих интеграций в эту дату.
Главное
- 18 мая 2026 года LINE объявила, что прием новых заявок на старую корпоративную функцию завершится в конце октября; ранее одобренные аккаунты смогут продолжить работу.
- Новый endpoint принимает непрозрачный
markAsReadTokenиз webhook-события сообщения. Его нельзя строить из ID пользователя илиmessage.id. POST /v2/bot/chat/markAsReadпомечает прочитанными указанное и все более ранние сообщения, поэтому важны порядок обработки и выбранный момент подтверждения.- Новый endpoint можно использовать вместе с Official Account Chat. Старый API этого не позволяет, поэтому меняется не только URL, но и рабочий процесс поддержки.
- UnifyPort может обслуживать отдельный входящий поток для обычного LINE-аккаунта, но не предоставляет message-read API или официальный
markAsReadTokenLINE.
Что меняется при миграции LINE Mark as Read API
Уведомление LINE от 18 мая не сообщает об остановке сервиса в октябре. LINE закрывает прием новых заявок на Mark as read API (old) в конце октября 2026 года, разрешает уже одобренным аккаунтам продолжить работу и рассматривает дальнейшее прекращение старой функции. Для новых реализаций компания рекомендует сценарий Messaging API Mark messages as read.
Контракты отличаются, поэтому одной замены endpoint недостаточно:
| Область | Mark as read API (old) | Messaging API markAsRead |
|---|---|---|
| Доступ | Корпоративная опция по заявке | Отдельная заявка не нужна |
| Chat | Несовместим с Official Account Chat | Для ручной отметки Chat должен быть включен |
| Входные данные | Старый контракт на уровне пользователя | markAsReadToken из webhook-события сообщения |
| Область действия | Показывает статус для сообщений пользователя | Отмечает сообщение токена и все предыдущие |
| Для новой разработки | Не рекомендуется | Рекомендуется LINE |
Если Chat выключен в LINE Official Account Manager, входящие сообщения пользователей автоматически получают статус прочитанных. В такой конфигурации дополнительный API call не нужен. Новый endpoint предназначен для команд, которые оставляют Chat включенным, но хотят контролировать момент появления статуса из backend.
Как перейти на POST /v2/bot/chat/markAsRead
1. Определите значение «прочитано» в поддержке
Выберите бизнес-событие, после которого пользователь действительно должен увидеть статус: сообщение принято в очередь, открыто оператором или назначено автоматическому обработчику. Доставка webhook не равна чтению человеком. Один вызов может подтвердить несколько ожидающих сообщений, поэтому правило нужно зафиксировать до изменения кода.
Составьте список всех старых callers, retry jobs, Official Accounts и сред. Зафиксируйте текущую настройку Chat. Документация старого API говорит, что старая функция отключает автоматический статус и не может работать одновременно с Chat, поэтому конфигурация аккаунта — часть состояния миграции.
2. Храните read token как непрозрачное значение
Когда пользователь пишет в LINE Official Account, событие сообщения Messaging API может содержать message.markAsReadToken. LINE указывает, что у read token нет срока действия, но reference также помечает поле как присутствующее не всегда. Если его нет, запишите этот факт и оставьте диалог непрочитанным. Не вычисляйте значение из message.id.
Связывайте token с webhook event ID, message ID, владельцем диалога, временем получения и состоянием обработки. Не помещайте его в analytics labels или клиентские логи. Это не channel access token, но это значение для действия из webhook-контракта LINE.
3. Вызовите endpoint Messaging API
Используйте самый новый 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 при успехе, 400 для недействительного read token и rate limit 2 000 запросов в секунду. Успешный call отмечает все сообщения до указанного включительно, а не только одну запись в вашей базе.
4. Сохраните порядок и границы повторов
Сериализуйте подтверждения по диалогу. Если сообщение B новее A, подтверждение B также охватит A. Глобальные workers, конкурирующие за tokens одного диалога, могут показать статус раньше завершения внутренней задачи.
Перед call сохраните намерение подтвердить сообщения, а после него — ответ LINE. 400 рассматривайте как ошибку контракта или данных. Для timeout и server errors следуйте актуальным общим правилам повторов LINE и ограничивайте число попыток. Лог должен показывать token и бизнес-событие, которое инициировало действие.
5. Проведите приемочный тест на уровне аккаунта
Используйте непроизводственный Official Account или контролируемый тестовый диалог. При включенном Chat проверьте:
- webhook пользовательского сообщения содержит
markAsReadToken; - до выбранной контрольной точки статус не появляется;
- в контрольной точке endpoint возвращает
200; - текущее и более ранние сообщения становятся прочитанными;
- отсутствие или неверный token не подтверждает более новое сообщение;
- Official Account Chat продолжает работать после миграции.
Удаляйте старый caller только после проверки нового пути и работы операторов. Октябрь — срок закрытия заявок, а не дата для непроверенного срочного переключения действующих клиентов.
Где подходит UnifyPort
Официальный сценарий markAsReadToken принадлежит LINE Official Accounts и Messaging API. Он нужен, когда официальный статус должен появиться в клиенте LINE пользователя.
UnifyPort решает другую задачу: подключенный обычный LINE-аккаунт может передавать поддерживаемые входящие диалоги в backend как нормализованное событие message.received, с тем же envelope, что WhatsApp, Telegram, TikTok, Zalo и X. Если у webhook endpoint настроен signing_secret, доставка проверяется через HMAC-SHA256 с X-Device-Timestamp и X-Device-Signature.
Это событие не содержит официальный markAsReadToken LINE. Текущая документация UnifyPort также прямо указывает, что message-read API отсутствует. Worker официальных статусов и worker входящих событий UnifyPort должны оставаться независимыми возможностями.
Для выбора архитектуры прочитайте получение сообщений LINE без Official Account и материал о том, почему LINE analytics polling не заменяет входящую маршрутизацию.
Ограничения и компромиссы
Выбирайте официальный Messaging API, если нужны идентичность Official Account, Chat, официальные статусы, rich menus, audience tools или другие нативные функции LINE. Новый markAsRead endpoint — официальный путь для статуса прочтения.
Неофициальный интерфейс не может дать функции Official Account, изменить правила заявок LINE или отметить сообщение Official Account прочитанным. Получение сообщения backend также не доказывает, что его увидел человек. Кросс-канальную входящую очередь оценивайте отдельно; если интерфейс LINE должен показать «прочитано», официальный endpoint остается в архитектуре.
FAQ
Отключат ли LINE Mark as read API (old) в октябре 2026 года?
Нет такого объявления. LINE прекратит принимать новые заявки в конце октября, но одобренные аккаунты смогут продолжить использование. LINE рассматривает будущую отмену и рекомендует миграцию.
Нужна ли заявка для нового endpoint LINE markAsRead?
Нет. POST /v2/bot/chat/markAsRead использует channel access token и markAsReadToken из webhook-события сообщения Messaging API.
Можно ли использовать markAsRead с LINE Official Account Chat?
Да. Для ручной отметки через Messaging API Chat должен быть включен. Если Chat выключен, входящие сообщения автоматически отмечаются прочитанными.
Истекает ли markAsReadToken?
LINE сейчас указывает, что read token не имеет срока действия. Все равно храните его только по требованиям эксплуатации и retention, используя token нужной контрольной точки.
Может ли UnifyPort отметить сообщение LINE Official Account прочитанным?
Нет. UnifyPort доставляет поддерживаемые входящие сообщения подключенного LINE-аккаунта, но не имеет message-read API и не выдает официальный markAsReadToken Messaging API.
Следующий шаг
Сопоставьте старый caller с официальным руководством Mark messages as read и выполните шесть проверок на контролируемом Official Account. Если отдельно нужна маршрутизация обычного аккаунта, изучите руководство авторизации LINE в UnifyPort до проектирования второго пути.
Источники
Официальные источники LINE проверены 25 июля 2026 года: