← Все статьи
Руководство

Анимация загрузки 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, чтобы определить владельцев запросов. Не позволяйте независимым обработчикам бесконечно обновлять один индикатор.

Не связывайте бизнес-процесс с таймером анимации

Рекомендуемая архитектура приложения:

  1. Проверьте подлинность входящего запроса и надёжно сохраните работу до использования визуальной обратной связи.
  2. Назначьте одно задание ответственным за ответ. Запрашивайте короткую анимацию только для подходящего личного взаимодействия.
  3. Выполняйте задачу независимо: сбой анимации не должен удалять сохранённую работу.
  4. Когда результат готов, используйте подходящую операцию отправки. Ждать конца анимации не нужно.
  5. Для длительных задач задайте явную политику отложенного ответа вместо бесконечного цикла показа.

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:

UnifyPort API

Превратите интеграцию сообщений в стабильный продуктовый pipeline.

Начните с отправки через единый API, затем возвращайте входящие сообщения в бизнес-систему стандартными событиями.