LINE Buttons Template 最多 4 个操作:选 Quick Reply、Carousel 还是 Flex Message?
LINE Messaging API 的 buttons template 在 actions 数组中最多支持 4 个 action 对象。如果卡片需要展示更多可见选项,不要把多个含义塞进一个按钮。即时选择可用 quick reply,商品或门店列表可用 carousel template,自定义信息层级可用 Flex Message;如果选项本身有分类,分成两轮对话通常最清楚。
要点速览
- LINE 官方 Messaging API reference 将 buttons template 的
actions上限设为 4 个对象。 - 图片、标题或文本区域还可配置一个独立 action,但它不会变成第 5 个可见按钮。
- Quick reply 最多可放 13 个按钮,适合当前问题的临时选项。
- Carousel template 适合按商品、门店或预约时段逐项浏览。
- Flex Message 的布局更自由,但设计、验证和多设备测试成本也更高。
LINE buttons template 的 4 个 action 上限是什么
LINE 把 template message 定义为预设布局,包括 buttons、confirm、carousel 和 image carousel。Buttons template 可以包含图片、标题、文本和操作按钮,其中必填的 actions 数组最多有 4 个对象。卡片的图片、标题或文本区域还可以设置一个可选 action。
两者不要混为一谈。整张卡片可点击,适合承载“查看详情”;它并不会让 4 个可见按钮变成 5 个。用户仍然需要清楚知道点击区域会打开什么,4 个按钮的标签也应互不含糊。
本文讨论的是 Messaging API buttons template,不是 LINE MINI App 中名称相近的 custom action button。如果你正在使用 liff.shareTargetPicker() 与 LINE 规定的分享卡片,请阅读 LINE MINI App 自定义操作按钮实现指南。
Buttons、quick reply、carousel 与 Flex Message 怎么选
| 方案 | 最适合 | 主要约束 | 选择条件 |
|---|---|---|---|
| Buttons template | 一张卡片上的 1 至 4 个主要操作 | actions 最多 4 个对象 | 每个操作都重要,且能放进同一语境 |
| Quick reply | 临时菜单或下一步问题 | 对话继续后按钮可能消失 | 用户应立即从最多 13 项中选择 |
| Carousel template | 商品、门店、预约等重复条目 | 内容要能整理成一致的 column | 每个条目都需要自己的图文与操作 |
| Flex Message | 品牌化或信息密集布局 | JSON、渲染与设备测试更复杂 | 标准 template 无法清晰表达信息层级 |
| 两步对话 | 可以按类别分组的长列表 | 多一次用户交互 | 先选大类,再展示相关选项 |
LINE 官方的 message types 概览 将这些能力列为不同消息类型。它们有各自的交互模型,不是同一张卡片的“大号版本”。
即时选择用 quick reply
LINE 允许一条消息配置最多 13 个 quick reply 按钮。它们显示在聊天底部,适合语言、配送时段、问题类型或门店地区等需要立即回答的问题。
不要把 quick reply 当作持久导航。LINE 文档说明,当聊天室出现新消息等情况时,这些按钮可能消失。如果用户稍后仍需返回该菜单,应使用更持久的消息布局,或在正确的业务状态下重新发送选项。
每个选项都是独立条目时用 carousel
如果选项代表不同商品、门店或预约记录,carousel 往往比在一张卡片上堆操作更自然。例如,每家门店都需要“路线”“营业时间”“联系门店”,就应把门店做成结构一致的独立 column,而不是让 4 个门店占满一张卡片的所有 action。
各 column 应保持可比较。不要把商品、售后命令和无关活动入口混在同一个 carousel 中。
问题在信息层级时用 Flex Message
当限制来自视觉层级,而不是纯粹的选项数量时,可以考虑 Flex Message。LINE 的 Flex Message elements 文档 提供带 action 的 button component 与多种样式。
Flex 并不意味着应该把所有操作放在一个屏幕。移动端可读性、标签清晰度、无障碍体验和渲染差异依然重要。上线前应使用 Flex Message Simulator,并验证最终 message object。
选项体现业务逻辑时拆成两步
很多时候,最好的方案不是更大的卡片,而是先问一个上层问题:
- “你需要哪类帮助?”——订单、退货、选品建议、账号。
- 只展示该类别下的相关操作。
这样每一步都更短,后端也能获得明确的路由状态。对于面向东南亚市场的中国出海团队,这种结构还便于按语言、国家或业务线逐层分流。
上线前检查清单
- 按用户意图排序。 让最常用、影响最大的操作始终可见。
- 分开导航与回答。 持久入口和当前问题的即时答案不应挤在同一菜单。
- 对长列表分组。 能自然分类时,优先使用两步对话。
- 使用明确标签。 同时出现“更多”“其他”“详情”会造成不必要的歧义。
- 为每个 action 建立后端状态。 卡片再漂亮,postback 或 message action 没有映射到有效流程也会失败。
- 在移动端测试。 检查文字截断、图片裁切、点击区域以及每一步的返回路径。
如果你还没决定应该使用 MINI App service message,还是 Messaging API 的 reply/push message,请先看 LINE Service Message 与 Messaging API 对比。先选对消息通道,再选布局。
UnifyPort 适合哪里,又不适合哪里
以上都是 LINE 官方 Messaging API 的展示能力。UnifyPort 不会复刻 buttons template、quick reply、carousel template 或 Flex Message。业务必须使用这些 LINE 原生 UI 时,应选择官方 Messaging API。
UnifyPort 解决的是另一类任务:通过非官方接口接收 LINE 会话,并把标准化入站事件交给现有后端。当前的 渠道消息支持矩阵 列出了 LINE 已映射的标准发送类型;标准 webhook 事件文档 则定义了跨支持平台一致的 message.received envelope。
可以据此划清架构边界:
- LINE Official Account 流程需要原生互动卡片:使用 Messaging API,并选择正确的官方 message type。
- 普通 LINE 账号的消息需要进入现有客服队列:评估 UnifyPort 的入站路径。
- 两者都需要:把它们视为由不同身份与团队负责的两个消息面,不要假设一种布局能覆盖全部场景。
想进一步了解入站方案及其边界,可阅读 不注册 Official Account 接收 LINE 消息。
限制与取舍
4 个操作足够时,标准 buttons template 仍是最简单的选择。Quick reply 选择更多,但属于临时控件;carousel 适合浏览条目,但内容必须一致;Flex Message 更灵活,也增加了测试工作;两步对话多一次交互,却通常能带来更清晰的决策。
官方客户端行为与 object 校验规则可能变化。若实现依赖精确上限或渲染表现,上线前应再次核对 LINE 当前文档。
常见问题
LINE Messaging API buttons template 最多有几个 action?
actions 数组最多包含 4 个 action 对象。图片、标题或文本区域的可选 action 是独立点击区,不是额外的可见按钮。
能用 quick reply 放超过 4 个 LINE 按钮吗?
可以。LINE 文档说明一条消息最多可配置 13 个 quick reply 按钮。它适合即时回答,不适合需要长期保留的导航。
更多操作应该用 carousel 还是 Flex Message?
重复条目且结构一致时用 carousel;需要自定义视觉层级时用 Flex Message。若选项本身可分组,两步对话往往更清楚。
UnifyPort 能发送 LINE buttons template 吗?
不能。UnifyPort 当前文档中的标准化 LINE 发送能力不包含官方 buttons template、carousel、quick reply 或 Flex Message。它更适合把 LINE 入站消息通过标准 webhook 接入后端。
下一步
先查看 UnifyPort 渠道消息支持矩阵,再决定入站与出站架构。需要原生 buttons、quick reply、carousel 或 Flex 布局时,请按 LINE 官方 Messaging API 文档实现。
来源
官方一手来源,核对日期:2026 年 8 月 18 日。
让消息接入变成一条稳定的产品管线。
先用统一 API 跑通发送,再用标准事件把所有入站消息接回业务系统。