Telegram群组中机器人仅响应带/指令、不回复普通文本的问题解决
解答:Telegram机器人在群组仅响应带“/”消息的问题
这俩问题本质是同一个原因——Telegram机器人的**隐私模式(Privacy Mode)**在搞鬼!
问题根源
当机器人的隐私模式处于开启状态时,它在群组环境下只能接收到以/开头的命令类消息,普通文本消息根本不会被Telegram推送到你的代码里,自然没法触发回复逻辑。而私聊场景下隐私模式不生效,所以你的代码在私聊里能正常工作就说得通了。
解决办法
1. 关闭隐私模式(最关键步骤)
这是必须做的第一步,通过Telegram官方的@BotFather来设置:
- 打开Telegram,搜索并进入@BotFather对话
- 发送命令
/setprivacy - 在弹出的机器人列表里选择你的目标机器人
- 选择
Disable选项,确认关闭隐私模式
2. 优化代码确保接收文本消息
关闭隐私模式后,你可以调整代码里的消息处理器,明确指定接收文本类型的消息(虽然默认也能接收,但加上更稳妥)。修改后的代码如下:
API_Key = "5*******2:AAH**************************o" bot = telebot.TeleBot(API_Key) # 添加content_types参数,确保机器人接收文本消息,同时匹配"I am" @bot.message_handler(regexp="I am", content_types=["text"]) def reply_to_iam(message): bot.send_message(message.chat.id, "I am") bot.infinity_polling()
补充说明
关闭隐私模式后,机器人会收到群组内的所有消息,所以如果后续你需要扩展功能,记得在代码里做好消息过滤逻辑,避免对无关消息做出响应哦。
内容的提问来源于stack exchange,提问作者Uv12
相关产品推荐
相关产品推荐

