← Tất cả bài viết
Hướng dẫn

Hiệu ứng đang tải trên LINE không hiện? Kiểm tra cuộc trò chuyện và thời điểm

Hiệu ứng đang tải của LINE chỉ xuất hiện trong cuộc trò chuyện một-một giữa người dùng và LINE Official Account, khi người dùng đang xem màn hình trò chuyện đó. Gửi yêu cầu qua POST /v2/bot/chat/loading/start. Nếu người dùng ở màn hình khác, LINE không gửi thông báo và không lưu hiệu ứng để hiển thị vào lần mở tiếp theo. Vì vậy, yêu cầu thành công không chứng minh người dùng đã nhìn thấy hiệu ứng.

Điểm chính

  • Dùng ID người dùng làm chatId, không dùng ID nhóm hay reply token.
  • Hiệu ứng biến mất khi hết thời gian chỉ định hoặc khi có tin nhắn mới từ Official Account đến.
  • Gọi lại khi hiệu ứng còn hiển thị sẽ thay thế thời gian còn lại, không báo cáo tiến độ xử lý.
  • Tách hiệu ứng giao diện khỏi xác nhận webhook, hoàn thành tác vụ và gửi câu trả lời.

Hiệu ứng đang tải của LINE thực sự kiểm soát điều gì?

Hướng dẫn chính thức quy định thời gian hiển thị 5–60 giây. Tính năng hỗ trợ trò chuyện một-một, không hỗ trợ trò chuyện nhóm hoặc nhiều người.

Trong hệ thống tích hợp, cần phân biệt ba loại thời gian:

Thời gianKiểm soát điều gìKhông chứng minh điều gì
Thời lượng hiệu ứngKhoảng thời gian tín hiệu trực quan có thể hiển thịWorker vẫn đang chạy
Vòng đời tác vụ ứng dụngThời gian hệ thống xử lý yêu cầuNgười dùng đang xem cuộc trò chuyện
Cơ hội trả lờiCòn dùng được thao tác trả lời của API chính thức hay khôngHiệu ứng có đang hiển thị hay không

Đừng dùng hiệu ứng để giám sát tác vụ. Hiệu ứng biến mất không đồng nghĩa AI xử lý thất bại: có thể bộ đếm đã hết hoặc một tin nhắn từ Official Account vừa đến.

Nếu vấn đề thực sự là gửi câu trả lời thất bại, hãy xem hướng dẫn reply token và phản hồi chậm trên LINE. Tài liệu của thao tác hiển thị không quy định việc gia hạn hoặc cấp lại reply token.

Gửi một yêu cầu thử nghiệm có kiểm soát

Chuẩn bị channel access token của Messaging API trên backend và ID người dùng từ tương tác một-một thuộc đúng channel. Không đưa token vào mã trình duyệt hoặc nhật ký dùng chung.

Ví dụ Node.js dưới đây dùng endpoint và các trường trong Messaging API reference. Truyền token channel và ID người dùng thực tế vào hàm. Đây là mã minh họa, không phải kết quả kiểm thử tích hợp đã thực hiện.

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}`);
  }
}

Ở lần thử đầu tiên, giữ cuộc trò chuyện mở trong ứng dụng LINE của người dùng và không gửi tin nhắn khác từ Official Account trong thời gian hiển thị. Ghi riêng kết quả HTTP và quan sát của người thử. HTTP thành công không phải xác nhận đã đọc.

Hàm này chủ ý không thử lại và không gửi câu trả lời. Lỗi của một tín hiệu giao diện không nên tự tạo thêm tác vụ nghiệp vụ hoặc làm chậm câu trả lời đã sẵn sàng.

Chẩn đoán hiệu ứng không hiện hoặc biến mất sớm

Hiện tượngKiểm tra trước tiênCách xử lý đề xuất
Không xuất hiện trong nhómLoại trò chuyện không được hỗ trợKhông tiếp tục thử lại bằng ID nhóm
Không hiện khi người dùng ở ngoài cuộc trò chuyệnNgười dùng không xem màn hình đíchThử lại khi đã mở đúng cuộc trò chuyện
Mở sau đó vẫn không thấyĐây không phải thông báo chờ hiển thịKhông hứa sẽ hiện ở lần truy cập tiếp theo
Biến mất khi tin nhắn xác nhận tiếp nhận đếnTin nhắn của Official Account kết thúc hiệu ứngChọn thứ tự giữa xác nhận bằng chữ và hiệu ứng
Hiển thị lâu hơn dự kiếnYêu cầu khác có thể đã thay bộ đếmKiểm tra lời gọi từ mọi worker và công cụ
Yêu cầu HTTP thất bạiThông tin xác thực, đích, body và phản hồi API thực tếChẩn đoán yêu cầu trước khi đổi logic giao diện

Đây là các hướng điều tra, không phải mã lỗi LINE mới. Với nhiều công cụ cùng hoạt động, checklist dùng nhiều công cụ trên một Official Account giúp xác định bên chịu trách nhiệm cho từng lời gọi. Tránh để các worker độc lập liên tục làm mới cùng một hiệu ứng.

Đặt bộ đếm hiển thị ngoài luồng nghiệp vụ

Thiết kế ứng dụng được đề xuất:

  1. Xác thực và lưu bền vững công việc đầu vào trước khi dựa vào phản hồi trực quan.
  2. Giao quyết định trả lời cho một tác vụ. Chỉ yêu cầu hiệu ứng ngắn khi hữu ích trong tương tác một-một phù hợp.
  3. Xử lý công việc độc lập; lỗi hiển thị không được làm mất công việc đã lưu.
  4. Khi có kết quả, dùng thao tác gửi phù hợp. Không cần chờ hiệu ứng hết hạn mới trả lời.
  5. Nếu xử lý kéo dài, áp dụng chính sách trả lời sau rõ ràng thay vì vòng lặp hiển thị vô hạn.

LINE nêu rằng yêu cầu thứ hai trong lúc hiệu ứng còn hiện sẽ ghi đè thời gian còn lại trước khi biến mất. Đó là quy tắc hiển thị, không phải cách kéo dài thời gian xử lý phía máy chủ hay giữ chỗ cho một lần trả lời.

Phạm vi của UnifyPort

Giao diện không chính thức của UnifyPort là một đường tích hợp riêng cho tài khoản đã kết nối. Hướng dẫn xác thực LINE mô tả cấp quyền bằng QR, không phải gắn channel access token vào Official Account.

Ma trận thao tác theo nền tảng công khai hiện tại không cung cấp thao tác hiệu ứng đang tải này. Không tự giả định có endpoint báo đang nhập, hoặc thêm chatId và loadingSeconds vào yêu cầu gửi chuẩn hóa. Tài liệu gửi tin nhắn văn bản dùng POST /v1/messages với account_id, to và message.

Nếu bắt buộc phải có hiệu ứng này của Official Account, hãy dùng Messaging API chính thức. Với hộp thư của tài khoản đã kết nối, bạn có thể hiển thị trạng thái xử lý trên giao diện nhân viên của mình và chỉ sử dụng các thao tác gửi đã được tài liệu hóa. Trạng thái nội bộ đó không phải hiệu ứng trong cuộc trò chuyện LINE.

Câu hỏi thường gặp

Có thể hiển thị trong nhóm LINE không?

Không. Tài liệu chỉ hỗ trợ trò chuyện một-một với Official Account, không gồm nhóm hoặc trò chuyện nhiều người.

Người dùng không xem cuộc trò chuyện có nhận được thông báo không?

Không. Yêu cầu không gửi thông báo, và việc mở cuộc trò chuyện sau đó không hiển thị hiệu ứng từ yêu cầu cũ.

loadingSeconds có gia hạn reply token không?

Không có hành vi như vậy trong tài liệu. Tách bộ đếm giao diện khỏi thao tác trả lời.

Vì sao hiệu ứng dừng trước thời gian đã chỉ định?

Tin nhắn mới từ Official Account sẽ kết thúc hiệu ứng. Kiểm tra cả bộ đếm và những lời gọi khác.

Bước tiếp theo và nguồn tham khảo

Kiểm thử điều kiện hiển thị theo hướng dẫn hiệu ứng chính thức. Nếu dùng UnifyPort, hãy kiểm tra ma trận thao tác trước khi thiết kế điều khiển dành cho khách hàng.

Nguồn chính thức được kiểm tra ngày 2026-10-20:

UnifyPort API

Biến tích hợp nhắn tin thành một pipeline sản phẩm ổn định.

Bắt đầu bằng cách gửi qua một API, rồi đưa mọi tin nhắn inbound trở lại hệ thống kinh doanh bằng sự kiện chuẩn.