Fanbook 中文文档 下载 App

BOT 命令系统 @命令 快捷命令 内联键盘

为什么需要命令系统

纯靠关键词匹配来响应消息既不清晰也不安全。命令系统让 BOT 的交互变得结构化、可预期、好上手——成员不用猜 BOT 会在什么情况下响应什么,而是通过明确的命令入口触发功能。

Fanbook 的 BOT 命令体系有三层:

  1. 频道机器人命令列表(输入 @机器人 弹出)
  2. 频道快捷命令列表(常驻输入框上方)
  3. 命令返回的内联键盘卡片(命令执行后的交互式 UI)

频道机器人命令列表

触发方式

在文本频道的输入框中输入 @ 并选择目标机器人,弹出该机器人的命令列表,展示它支持的所有命令及参数提示。

实现方式

开发者在 Bot API 中通过命令列表接口(具体端点见开发者平台)配置命令定义。每个命令包含:

示例体验

假设你在频道里输入 @积分BOT,弹出的命令列表可能长这样:

@积分BOT
  [积分] 查询自己的积分余额
  [积分排行榜] 查看积分排行
  [积分兑换] 用积分兑换奖品

频道快捷命令列表

功能

管理员可以从某个 BOT 的命令列表中,选择高频常用的命令配置为频道内的常驻快捷按钮,显示在聊天输入框上方。

与 @命令列表的区别

对比项快捷命令@命令列表
显示位置输入框上方,常驻输入框内,输入 @ 才出现
适用命令高频、常用所有命令(含低频)
操作方式一键点击输入 @ + 选择
成员感知强——进来就看到弱——需要主动触发

推荐配置

配置方法

  1. 进入目标频道
  2. 频道设置 → 快捷命令(或类似选项)
  3. 选择已添加的 BOT → 勾选要设置为快捷命令的命令
  4. 保存后即可在频道内看到

内联键盘(交互卡片)

功能

命令执行后,BOT 可以返回一个带按钮的交互卡片,成员点击按钮进行下一步操作。这比纯文字回复的用户体验好得多。

典型场景

签到成功后:

✅ 签到成功!今日获得 10 乐豆,连续签到 7 天额外奖励 +50

[查看我的积分] [查看排行榜] [去兑换奖品]

活动报名后:

🎮 你已报名「周末开黑活动」,活动时间本周六 20:00

[取消报名] [查看活动详情] [邀请好友一起]

开发者实现

通过 Bot API 的 sendMessage 接口,在消息体中传入 reply_markup 字段定义内联键盘:

{
  "chat_id": "xxx",
  "text": "签到成功",
  "reply_markup": {
    "inline_keyboard": [
      [{"text": "查看积分", "callback_data": "check_points"}],
      [{"text": "排行榜", "callback_data": "ranking"}]
    ]
  }
}

用户点击按钮后,Bot 通过回调(callback)接收事件,执行对应操作并返回新的卡片或消息。

命令可见性规则

管理员可以控制命令的可见性:

命令设计建议

命名要直觉

帮助信息要明确

每条命令都要有简短描述,告诉成员:

错误反馈要友好

命令执行失败时,不要只返回「错误」,告诉用户:

不要过于依赖命令

不是所有 BOT 功能都需要命令触发。对于高频简单操作(签到),用快捷命令。对于需要复杂交互的,用内联键盘。对于纯自动化的(每日定时提醒),让 BOT 自己触发,不需要用户操作。