← 所有文章
教學

LINE 載入動畫沒顯示?檢查聊天室與顯示時機

LINE 載入動畫只適用於使用者與 LINE 官方帳號的一對一聊天室,而且使用者必須正在查看該聊天畫面。透過 POST /v2/bot/chat/loading/start 請求顯示。若使用者正在別處,LINE 不會發送通知,也不會等下次開啟聊天室時補顯。因此,請求成功不代表使用者看到了動畫。

重點

  • chatId 應使用目標使用者 ID,不是群組 ID 或回覆權杖。
  • 指定時間結束,或官方帳號的新訊息送達,動畫就會消失。
  • 動畫顯示期間再次請求,會重設剩餘顯示時間;這不是任務進度回報。
  • 動畫、webhook 確認、背景任務完成與實際回覆是不同環節。

LINE 載入動畫實際控制什麼

官方載入動畫指南規定顯示時間為 5–60 秒,適用於一對一聊天,不支援群組或多人聊天室。

整合時應區分三種時間:

計時控制內容不能證明的事
動畫時間視覺提示可持續顯示多久背景任務仍在執行
應用程式任務生命週期系統處理請求的時間使用者正在查看聊天
回覆機會官方回覆操作是否仍可使用動畫是否可見

不要用動畫監控任務。動畫消失也不表示 AI 處理失敗:可能只是時間到了,或官方帳號傳來了一則訊息。

如果真正的問題是回覆失敗,請參考LINE 回覆權杖過期與慢回覆指南。載入接口沒有任何延長或更新回覆權杖的文件承諾。

發出一次受控的顯示請求

在後端準備 Messaging API channel access token,以及目標頻道一對一互動中的使用者 ID。不要把權杖放入瀏覽器程式碼或共用日誌。

以下 Node.js 範例使用 Messaging API reference 的端點與欄位。請傳入實際頻道權杖和使用者 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 聊天畫面開啟,顯示期間不要再傳送其他官方帳號訊息。分別記錄 HTTP 結果與實際觀察,不要把 HTTP 成功當成已讀回條。

範例刻意不重試,也不傳送答案。視覺提示失敗不應自動建立第二個業務任務,或延誤已準備好的回覆。

排查看不到或提早消失的動畫

現象優先檢查建議處理
群組裡沒有動畫不支援該聊天類型不要持續使用群組 ID 重試
使用者未開啟聊天時沒顯示未查看目標聊天室開啟聊天室後重新測試
稍後開啟仍看不到動畫不是延後通知不要承諾下次開啟會補顯
確認訊息送達後立即消失官方帳號訊息會結束動畫決定文字確認與動畫的順序
顯示時間比預期長另一個請求可能重設了計時檢查所有 worker 與工具的呼叫
HTTP 請求失敗憑證、目標、請求本文及實際回應先排查請求,再修改介面邏輯

這些是排查方向,不是新增的 LINE 錯誤碼。多個工具同時運作時,可參考同一 LINE 官方帳號使用多個工具的檢查表,釐清呼叫來源,避免不同 worker 各自刷新同一個提示。

不要讓動畫計時支配業務流程

建議的應用程式設計:

  1. 驗證並持久儲存收到的工作,再考慮視覺回饋。
  2. 由單一任務負責回覆決策,只在適合的一對一互動中請求短暫動畫。
  3. 獨立執行實際處理;動畫失敗不應丟棄已儲存的工作。
  4. 結果完成後,使用適當的傳送操作,不必等動畫結束。
  5. 若處理時間較長,採用明確的延後回覆策略,不要無限延長動畫。

LINE 說明:動畫可見期間的第二次請求,會覆寫距離消失的剩餘時間。這只是顯示規則,不會因此延長伺服器處理時間或保留回覆機會。

UnifyPort 的適用範圍與限制

UnifyPort 的非官方介面是獨立的訊息帳號整合路徑。LINE 授權指南描述 QR Code 授權,不是將 channel access token 綁定至官方帳號。

目前公開的平台動作矩陣沒有提供這個載入動畫操作。不要自行假設存在「正在輸入」端點,也不要將 chatId、loadingSeconds 放入標準化傳送請求。文字訊息文件使用 POST /v1/messages,欄位是 account_id、to 與 message。

若需求一定包含官方帳號的這種動畫,應使用官方 Messaging API。若是已連線帳號的收件匣,可以在自己的客服介面顯示處理狀態,並僅使用文件明列的傳送能力;本地狀態不是 LINE 聊天動畫。

常見問題

LINE 群組可以顯示嗎?

不行。官方文件限定使用者與官方帳號的一對一聊天,不包含群組或多人聊天室。

使用者沒看聊天時會收到通知嗎?

不會。請求不會發通知,稍後開啟聊天也不會顯示先前請求的動畫。

loadingSeconds 會延長回覆權杖嗎?

文件沒有這項約定。視覺計時與回覆操作應分開處理。

為何還沒到指定時間就停止?

官方帳號的新訊息會結束動畫。請同時檢查計時與其他呼叫。

下一步與參考資料

依官方載入動畫指南驗證顯示條件。若使用 UnifyPort,請先確認平台動作矩陣,再設計面向客戶的控制項。

官方資料核對日期:2026-10-20。

UnifyPort API

讓訊息接入變成一條穩定的產品管線。

先用統一 API 跑通傳送,再用標準事件把所有入站訊息接回業務系統。