消息与按钮
"发送消息"动作通过内容块和 inline 按钮、主菜单以及对话步骤组合机器人的回复内容。这是构建器中功能最丰富的动作——变量替换和按钮的引用参数也在此处配置。
消息内容块
消息由一系列内容块组成(通过添加内容块按钮):
- 文本 — 格式化文本(最多 4096 个字符),支持变量替换和按钮。
- 图片 — 带说明的图像。
- 文件 — 带说明的文档。
- 延迟 — 下一个内容块前的暂停秒数。
- AI — 根据提示词由模型生成的回复。
- 反应 — 调用另一个反应(可选等待其处理完成)。
内容块支持拖拽排序。内容块显示模式为**"按顺序"或"随机"(用于多样化回复)。机器人主菜单可保持不变**、重新设置或隐藏。
内容块选项
文本块和媒体块支持以下标志:置顶、静音、防转发、剧透、不显示链接预览、N 秒后自动删除。
Inline 按钮
在内容块中可配置按钮(按钮文本 + 类型):
- 文本(callback) — 在机器人侧处理点击事件的按钮。
- 链接 — 打开 URL。
- 网页应用 — 打开 Telegram Mini App。参见 Mini App。
- 调用反应 — 点击后触发另一个反应。
- 接收付款和通知 — 标记为"即将推出"。
按钮样式 — 普通、蓝色(Primary)、绿色(Success)或红色(Danger)。**"一次性"**标志使按钮在点击后失效。
点击行为
对于 callback 按钮,可配置点击时的行为:替换按钮文本、替换消息(用文本或关联反应的内容)、删除消息、跳过 answerCallbackQuery。点击还可以添加标签和设置参数。
按钮中的参数(Carry)
"Carry — 点击时的数据快照"模块在发送消息时将一组值附加到按钮上。点击时,这些值进入执行上下文——这样每个按钮都携带自己的参数(per-invocation),即使有多个按钮也如此。可设置 payload 有效期(秒)。这是"选择商品 → 下单选中商品"等场景的基础。
动态按钮
**"从列表生成动态按钮"**模块将 ctx 中的数组展开为按钮——每个元素对应一个按钮。可配置:ctx 中的列表键名、元素别名、每行按钮数以及按钮模板(支持 {{alias.字段}})。这样可以构建目录、记录列表以及来自集合数据的菜单。详情参阅动态按钮与参数。
预期回复(对话步骤)
文本块可以等待用户回复——这将消息转变为对话步骤,并在收到回复之前暂停流程。连续多个步骤可在聊天中构成问卷或向导。
预期内容类型
机器人可等待特定类型的回复:文本、从选项中选择(选项按钮)、图片、视频、视频笔记、音频、文档、语音消息、位置、联系人、日历或骰子。如果用户发送了错误的类型,该步骤将认为回复不符合要求。
文本验证
对于文本回复,可启用格式验证:电话号码、邮箱、链接、日期、时间或公式匹配(正则表达式)。未通过验证的回复将被拒绝,机器人显示错误消息。
保存回复
用户的回复可保存到参数——之后可在变量替换中通过 {{param.key}} 引用,也可用于条件判断。这样,对话步骤可以逐步构建用户的迷你档案。
错误提示、提醒与超时
- 验证失败时的提示消息 — 回复未通过验证时显示的内容。
- 提醒 — 用户长时间未回复时发送的内容。
- 超时取消等待 — 等待多少秒后停止;超时时可触发反应(例如,优雅地结束问卷)。该反应在关联中显示为"等待超时",而处理回复本身的反应显示为"预期回复"。
变量替换
**"变量替换"**按钮用于插入变量:发送者数据({{first_name}}、{{username}}、{{user_id}})、事件数据({{text}}、{{chat_id}}、{{datetime}})和参数({{param.key}})。完整列表和公式参阅变量替换与公式。