You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyrogram如何配置filters.command适配普通和带@机器人后缀的指令

Telegram 机器人指令过滤器兼容带@后缀配置方法

问题原因

Telegram 群组内用户发送指令时会自动补全@机器人后缀,部分旧版本框架或者配置有误的过滤器会把后缀当成指令的一部分,导致匹配失败。

通用适配方案

不管使用哪款机器人开发框架,都可以用正则规则实现两种格式的匹配,匹配规则为:r'^/my_command(@.*)?$'
这个规则会同时匹配/my_command和/my_command@任意机器人名两种格式的指令。

主流框架专属配置

python-telegram-bot

  • v13.x及以上版本:直接使用默认的filters.Command("my_command")即可,框架默认会自动剥离@后缀,不需要额外配置。如果之前配置了自定义正则限制,删除对应的规则即可。
  • v12.x及以下旧版本:替换原有过滤器为正则过滤器:
    filters.Regex(r'^/my_command(@.*)?$')
    

aiogram

默认Command("my_command")已经兼容带@后缀的指令,如果匹配失败检查是否开启了commands_ignore_at参数,将其设置为True即可。

Node.js 系列框架(grammy/telegraf)

默认bot.command("my_command")已经自动兼容两种格式,失效时可以手动写匹配规则:

bot.hears(/^\/my_command(@.*)?$/, ctx => {
    // 指令处理逻辑
  })

内容的提问来源于stack exchange,提问作者yuko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 20:09:03