Анимация загрузки LINE не отображается? Проверьте чат и время
Анимация загрузки LINE появляется только в личном чате пользователя с LINE Official Account, когда пользователь смотрит этот чат. Для показа используется POST /v2/bot/chat/loading/start. Если пользователь находится на другом экране, LINE не отправляет уведомление и не откладывает анимацию до следующего открытия чата. Поэтому успешный запрос сам по себе не доказывает, что пользователь её увидел.
Главное
- В
chatIdпередавайте ID пользователя, а не группы или токен ответа. - Анимация исчезает по истечении заданного времени либо при поступлении нового сообщения от Official Account.
- Повторный запрос во время показа заменяет оставшееся время. Это не отчёт о ходе выполнения задачи.
- Визуальный индикатор, подтверждение webhook, завершение задания и отправка ответа — разные операции.
Что именно показывает анимация LINE
Официальное руководство указывает длительность 5–60 секунд. Функция предназначена для личных чатов, а не групповых или многопользовательских.
В интеграции нужно различать три временные шкалы:
| Время | Что определяет | Чего не подтверждает |
|---|---|---|
| Длительность анимации | Как долго может отображаться индикатор | Что обработчик ещё работает |
| Жизненный цикл задания | Как долго приложение обрабатывает запрос | Что пользователь смотрит чат |
| Возможность ответить | Можно ли ещё использовать официальную операцию ответа | Что анимация видна |
Не используйте анимацию для мониторинга заданий. Её исчезновение не означает сбой ИИ: мог закончиться таймер или прийти сообщение от Official Account.
Если проблема в отправке ответа, обратитесь к отдельному руководству по reply token и медленным ответам LINE. Для операции показа не документировано продление или обновление токена ответа.
Выполните один контролируемый запрос
Подготовьте на сервере channel access token Messaging API и ID пользователя из личного взаимодействия в нужном канале. Не помещайте токен в браузерный код или общие журналы.
Ниже — пример Node.js с маршрутом и полями из справочника Messaging API. Передайте реальные токен канала и ID пользователя. Это иллюстрация, а не отчёт о выполненном интеграционном тесте.
async function showLoading(channelAccessToken, userId) {
const response = await fetch(
'https://api.line.me/v2/bot/chat/loading/start',
{
method: 'POST',
headers: {
Authorization: `Bearer ${channelAccessToken}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
chatId: userId,
loadingSeconds: 5
})
}
);
if (!response.ok) {
throw new Error(`Loading request failed: ${response.status}`);
}
}
При первом тесте оставьте чат открытым в приложении LINE пользователя и не отправляйте другие сообщения от Official Account во время показа. Сохраняйте HTTP-результат отдельно от наблюдений тестировщика. Успешный HTTP-ответ — не подтверждение прочтения.
Функция намеренно не повторяет запрос и не отправляет ответ пользователю. Сбой косметического индикатора не должен создавать второе бизнес-задание или задерживать уже готовый ответ.
Почему индикатор не виден или быстро исчезает
| Наблюдение | Что проверить сначала | Рекомендуемое действие |
|---|---|---|
| В группе ничего не появляется | Неподдерживаемый тип чата | Не повторять запросы с ID группы |
| Пользователь вне чата, анимации нет | Открыт ли нужный чат | Повторить контролируемый тест с открытым чатом |
| После открытия чата анимации всё равно нет | Это не отложенное уведомление | Не обещать показ при следующем посещении |
| Анимация исчезает после сообщения о приёме запроса | Сообщение Official Account завершает показ | Определить порядок текстового подтверждения и анимации |
| Показ длится дольше ожидаемого | Другой запрос мог заменить таймер | Проверить вызовы всех обработчиков и инструментов |
| HTTP-запрос завершается ошибкой | Учётные данные, адресат, тело и фактический ответ API | Сначала проверить запрос, затем менять UI |
Это направления диагностики, а не новые коды ошибок LINE. При нескольких интеграциях используйте чек-лист нескольких инструментов для одного Official Account, чтобы определить владельцев запросов. Не позволяйте независимым обработчикам бесконечно обновлять один индикатор.
Не связывайте бизнес-процесс с таймером анимации
Рекомендуемая архитектура приложения:
- Проверьте подлинность входящего запроса и надёжно сохраните работу до использования визуальной обратной связи.
- Назначьте одно задание ответственным за ответ. Запрашивайте короткую анимацию только для подходящего личного взаимодействия.
- Выполняйте задачу независимо: сбой анимации не должен удалять сохранённую работу.
- Когда результат готов, используйте подходящую операцию отправки. Ждать конца анимации не нужно.
- Для длительных задач задайте явную политику отложенного ответа вместо бесконечного цикла показа.
LINE указывает, что второй запрос во время показа заменяет оставшееся время до исчезновения. Это правило отображения, а не способ продлить серверную обработку или зарезервировать возможность ответа.
Возможности и границы UnifyPort
Неофициальный интерфейс UnifyPort — отдельный путь для подключённых аккаунтов. Руководство по авторизации LINE описывает QR-авторизацию, а не подключение channel access token к Official Account.
В текущей публичной матрице действий провайдеров такой операции анимации нет. Не придумывайте маршрут для статуса набора текста и не добавляйте chatId и loadingSeconds в нормализованный запрос отправки. В справочнике текстовых сообщений используется POST /v1/messages с account_id, to и message.
Если обязательна именно эта анимация Official Account, используйте официальный Messaging API. Для входящих сообщений подключённого аккаунта можно показывать состояние обработки в собственном интерфейсе оператора и использовать только документированные операции отправки. Такой локальный статус не является анимацией в чате LINE.
Частые вопросы
Можно ли показать анимацию в группе LINE?
Нет. Документация ограничивает её личными чатами с Official Account, исключая группы и многопользовательские чаты.
Получит ли пользователь уведомление, если не смотрит чат?
Нет. Запрос не отправляет уведомление, а последующее открытие чата не показывает анимацию из прежнего запроса.
Продлевает ли loadingSeconds токен ответа?
Такое поведение не документировано. Разделяйте визуальный таймер и операцию ответа.
Почему показ завершился раньше заданного времени?
Новое сообщение от Official Account завершает анимацию. Проверьте также таймер и конкурирующие вызовы.
Следующий шаг и источники
Проверьте условия показа по официальному руководству. Если используете UnifyPort, сначала изучите матрицу действий, а затем проектируйте элементы управления для клиентов.
Официальные источники проверены 2026-10-20:
Превратите интеграцию сообщений в стабильный продуктовый pipeline.
Начните с отправки через единый API, затем возвращайте входящие сообщения в бизнес-систему стандартными событиями.