← 所有文章
对比选型

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 往往比在一张卡片上堆操作更自然。例如,每家门店都需要“路线”“营业时间”“联系门店”,就应把门店做成结构一致的独立 column,而不是让 4 个门店占满一张卡片的所有 action。

各 column 应保持可比较。不要把商品、售后命令和无关活动入口混在同一个 carousel 中。

问题在信息层级时用 Flex Message

当限制来自视觉层级,而不是纯粹的选项数量时,可以考虑 Flex Message。LINE 的 Flex Message elements 文档 提供带 action 的 button component 与多种样式。

Flex 并不意味着应该把所有操作放在一个屏幕。移动端可读性、标签清晰度、无障碍体验和渲染差异依然重要。上线前应使用 Flex Message Simulator,并验证最终 message object。

选项体现业务逻辑时拆成两步

很多时候,最好的方案不是更大的卡片,而是先问一个上层问题:

  1. “你需要哪类帮助?”——订单、退货、选品建议、账号。
  2. 只展示该类别下的相关操作。

这样每一步都更短,后端也能获得明确的路由状态。对于面向东南亚市场的中国出海团队,这种结构还便于按语言、国家或业务线逐层分流。

上线前检查清单

  1. 按用户意图排序。 让最常用、影响最大的操作始终可见。
  2. 分开导航与回答。 持久入口和当前问题的即时答案不应挤在同一菜单。
  3. 对长列表分组。 能自然分类时,优先使用两步对话。
  4. 使用明确标签。 同时出现“更多”“其他”“详情”会造成不必要的歧义。
  5. 为每个 action 建立后端状态。 卡片再漂亮,postback 或 message action 没有映射到有效流程也会失败。
  6. 在移动端测试。 检查文字截断、图片裁切、点击区域以及每一步的返回路径。

如果你还没决定应该使用 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。若选项本身可分组,两步对话往往更清楚。

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 日。

UnifyPort API

让消息接入变成一条稳定的产品管线。

先用统一 API 跑通发送,再用标准事件把所有入站消息接回业务系统。