Skip to content

变量使用指南 ​

这篇帮你做什么:理解群管家各类文案里 {{.变量名}} 占位符的用法——哪里能用、能用哪几个、写错了会怎样。

先分清三件事 ​

  1. 变量不是通用的。每个功能有自己的一套变量,A 功能的变量拿到 B 功能里不会生效。每条文案编辑窗下方的“可用变量”标签就是当前条目能用的全部变量,点击标签即可插入到光标位置,不需要手打。
  2. 语法不止一种。群提示、提示设置、问答、智能名片和定时任务使用双花括号带点的模板写法 {{.user_id}};消息转发没有模板配置,只对原文中的少数非点号形式做字符串替换。缺少括号、漏点、写成中文括号或把两种写法混用,都可能导致替换失败。
  3. 改完先预览:群提示和问答都带不实际发送的预览(群提示用“测试”,问答用“测试渲染”);提示设置和定时任务没有同等预览,先在测试群验证。
  4. 区分“语法错误”和“变量不存在”:前者通常导致预览报错、回复失败或实际发送退回原文;后者在多数功能中只是渲染为空字符串,不会报错。

各功能的变量清单 ​

群提示(群设置 → 群提示) ​

所有条目都支持 5 个基础变量:

变量含义注意
{{.user_id}}当事人用户 ID入群、退群等事件的当事人
{{.nickname}}当事人昵称取不到时可能为空
{{.group_id}}群标识协议层群号
{{.group_name}}群名从本地群资料读取
{{.time}}渲染时刻是本次提示处理的当前时间,不是事件发生时间

部分条目还有事件专用变量,编辑弹窗的“可用变量”标签会列全,常见的有:

  • 被踢/禁言/撤回通知:{{.operator}}(操作者)、{{.duration}}(禁言时长)、{{.message_id}}
  • 角色变更:{{.old_role}}、{{.new_role}}
  • 文件上传:{{.file_name}}、{{.file_size}}
  • 名片变更:{{.old_card}}、{{.new_card}}

把只属于消息事件的变量用在入群提示里,通常得到空字符串,不会自动变成有意义的值。

提示设置(应用设置 → 提示设置) ​

每条提示各自声明可用变量,以编辑弹窗中的“可用变量”标签为准。大体分两类:

  • 指令回复类(帮助、各命令清单等):多为固定文案,常见变量有 {{.user_id}}、{{.group_id}}、{{.nickname}}、{{.reason}}、{{.trigger_keyword}}。
  • 查询结果类(查黑白名单、查信用分等):有成套的结果变量(如 {{.count}}、{{.entries}}),可能包含 range 结构。这类条目不建议改结构,改动容易导致整条回复失败。

当前限制:页面右上角的“变量说明”弹窗列的是中文占位符(如 {{.用户名}}、{{.用户QQ}}),与实际可用的英文变量名不一致;照它填写会导致变量无法替换。请忽略该弹窗,以编辑窗里的“可用变量”标签为准。

问答(群设置 → 问答词库) ​

回答支持 6 个变量:

变量含义
{{.user_id}}触发问答的成员 ID
{{.nickname}}触发问答的成员昵称
{{.group_id}}群号
{{.group_name}}群名
{{.time}}回复时刻
{{.question}}触发命中那条消息的原文

问答变量不包含监控记录、警告次数或信用分明细;需要查这些内容时使用对应的查询指令。

智能名片(群设置 → 智能名片) ​

名片模板支持 8 个变量:{{.nickname}}、{{.nickname_truncated}}、{{.region}}、{{.region_or_default}}、{{.gender}}、{{.gender_code}}、{{.join_time}}、{{.join_verification_info}}。各变量含义与配置联动(如截断长度、地区兜底文案)见智能名片。

定时任务(群设置 → 定时任务) ​

“发消息”正文是文本模板,但可用值很少:

变量定时任务中的实际值
{{.group_id}}当前任务所属群的协议层群号
{{.user_id}}空;定时任务没有发起成员
{{.trigger_keyword}}空;不是关键词触发

不要用定时任务期待 {{.nickname}}、{{.group_name}} 等成员或群资料变量;它们不会自动变成个性化内容。语法错误时系统回退发送原文并记录日志。

消息转发(群设置 → 消息转发) ​

当前转发没有“按模板发送”模式,界面也没有可填的模板。纯文本转发会对原消息正文做有限字符串替换:

原文中出现的写法文本转发时的结果
{{user_id}} 或 替换为来源消息发送者的 ID
{{group_id}} 或 替换为来源群群号
{{.user_id}}、{{.group_id}}不替换,保留原文
图片、视频、文件、合并转发等结构化内容按原消息段转发,不做替换

这不是常规模板能力,也不保证来源信息被标注。不要依赖它来生成“来自某群/某人”的格式;发送前按原消息内容核对。详见消息转发。

写错了会怎样 ​

先区分 模板语法错误 和 变量名不存在。例如 {{.user_id 缺少右括号,是语法错误;{{.not_a_var}} 括号完整但变量名不存在,是另一种情况。

下面列的是模板语法错误的后果:

功能后果怎么发现
群提示预览直接报“模板语法错误”;没预览就保存的话,实际发送时会 退回原文发出(变量原样显示),并留下日志用“测试”预览
提示设置对应指令执行时 回复失败、什么都不回(不会自动退回默认文案)核对实际执行日志及模板语法;修正当前模板,或确认影响范围后使用恢复默认
问答保存或导入时会拒绝该回答;若运行期仍遇到渲染错误,该次回复不发送,“渲染失败”计数加一看编辑校验和“渲染失败”列
智能名片本次名片渲染失败,不会回退原文;按调用入口记录错误检查名片格式并重新保存
定时任务解析或执行失败时 回退发送原文,并记录日志到点后在测试群核对实际文本
消息转发没有模板语法;带点写法会原样保留按原消息内容核对,不要依赖变量

变量名不存在通常不会让整条消息失败,而是渲染为空字符串(各功能均启用缺失变量零值处理)。因此“预览没有报错”只能说明语法通过,不能证明变量名正确;必须对照当前条目的“可用变量”标签。

正例:给群提示写“欢迎 {{.nickname}}”,从可用变量标签插入并预览;给问答写“{{.nickname}},答案是……”,先测试渲染。反例:把提示设置查询模板里的 {{.entries}} 复制到问答回答里,或把消息转发的 {{user_id}} 当成 {{.user_id}} 使用。

和其他页面的关系 ​