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 独立刷新同一个提示。
不要把业务流程绑在动画计时上
建议采用以下应用设计:
- 先验证并持久化入站任务,再考虑视觉反馈。
- 由一个任务负责回复决策,仅在合适的一对一互动中请求短时动画。
- 独立运行实际处理;动画失败不应丢弃已保存的工作。
- 结果准备好后,选择合适的发送操作,不必等动画结束。
- 处理时间较长时,执行明确的延迟回复策略,不要无限续播动画。
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。
让消息接入变成一条稳定的产品管线。
先用统一 API 跑通发送,再用标准事件把所有入站消息接回业务系统。