变量替换与公式
变量替换是形如 {{...}} 的变量,在反应触发时被插入消息文本、动作字段和按钮模板中。未识别的变量替换保持原样不变。除变量外,还支持用于计算的公式。消息编辑器中的**"变量替换"**按钮可帮助你插入变量。
发送者数据
{{first_name}}、{{last_name}}— 名和姓。{{username}}— 用户的@username。{{user_id}}— Telegram 数字 ID。
事件与聊天数据
{{text}}(即{{received_message}})— 传入消息的文本。{{message_id}}(即{{received_message_id}})— 传入消息的 ID。{{chat_id}}、{{chat_title}}(即{{chat_name}})— 发生事件的聊天。{{topic_id}}、{{topic_url}}— 话题(用于论坛群组)。
日期与时间
{{date}}— 日期(YYYY-MM-DD),{{time}}— 时间(HH:MM),{{datetime}}— 日期和时间。- 自定义格式:
{{date:DD.MM.YYYY HH:mm}}— 支持令牌YYYY、YY、MM、DD、HH、mm、ss。
用户参数
{{param.key}}(即{{params.key}}或{{recipient.key}})— 订阅者参数的值。参数由"修改参数"、"保存消息"动作以及对话回复填充。
执行上下文(ctx)
{{ctx.key}}(即{{context.key}})— 当前执行的临时值:传入 Webhook 的数据、动作结果(网页请求、数据源查询、AI)、按钮还原数据(Carry)、循环元素。- 在列表循环中,元素通过其别名访问,例如
{{item.name}}。
公式
构造 {{= 表达式}} 直接在文本中计算表达式。同一引擎也用于**"计算"**动作和决策表条件。在表达式中可按名称引用参数和 ctx 值,支持算术、比较、逻辑运算以及数十个带中文别名的函数(如 ROUND、IF、CONCAT 等)。
示例:{{= ROUND(param.total * 0.9) }} — 从参数中的金额计算 10% 折扣。
完整语法和函数列表参阅公式章节。
变量替换中的 HTML
消息以 HTML 标记发送。为避免替换后的值破坏排版(例如用户名中包含 <),替换的值默认会被转义:HTML 字符变为安全文本。你直接写在反应文本中的标签(<b>、<a> 等)则保持不变。
如果某个值本身已包含现成的标记(例如保存在参数中、带有 <b>...</b> 的公告),并且你想原样插入,请在变量替换前加上 &:
{{& key}}— 用于{{...}}变量替换的原始插入。{&user:key}、{&recipient:key}、{&global:key}— 用于 namespace 变量替换的原始插入。
& 前缀仅对该单个变量替换关闭转义——你需要为值来源的可信度负责。受订阅者控制的令牌({{first_name}} 等)最好保持转义。
从其他构造器导入机器人时,namespace 变量替换 {user:…}/{recipient:…}/{global:…} 会自动迁移为原始形式 {&…}——它们通常存放带有现成标记的值,与源构造器的工作方式一致。
格式说明
变量替换 {{...}} 适用于文本、说明文字、请求体和按钮模板。请为参数和 ctx 键取简短的英文名称(email、total、order_id)——这样引用更方便。