← 所有文章
教學

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 授權指南描述二維碼授權,不是將 channel access token 綁定至官方帳戶。

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

如果必須顯示官方帳戶的這種動畫,應使用官方 Messaging API。對於已連線帳戶的收件箱,可在自己的客服介面顯示處理狀態,並只使用文件列明的傳送能力;本地狀態不是 LINE 對話動畫。

常見問題

LINE 群組可以顯示嗎?

不可以。官方文件限定用戶與官方帳戶的一對一對話,不包括群組或多人對話。

用戶沒看對話時會收到通知嗎?

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

loadingSeconds 會延長回覆權杖嗎?

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

為何未到指定時間就停止?

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

下一步與參考資料

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

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

UnifyPort API

令訊息接入變成一條穩定嘅產品管線。

先用統一嘅 API 跑通發送,再用標準事件將所有入站訊息接返去業務系統。