pyTelegramBotAPI开发Telegram Bot仅响应本人命令问题求助
问题错误点及修复方案
1. 代码逻辑错误
你当前代码中bot.send_message方法固定传入了你个人的ID作为收信对象,意味着无论哪个用户/群成员触发了start或help命令,Bot都会把响应消息发送到你的个人账号,其他成员自然收不到任何回复。
你需要将固定ID替换为动态获取当前触发消息的对话ID:message.chat.id,这样Bot才会把响应发送到触发命令的对应对话(可以是私人对话、群组、频道等)。
2. Bot隐私配置问题
如果修改代码后仍然没有响应,大概率是Telegram Bot默认开启的群隐私模式导致的:
隐私模式开启时,Bot仅能收到群内以下类型的消息:
- 群管理员发送的消息
- 内容中@了该Bot的消息
- Bot自己发送的消息的回调回复
你需要通过以下步骤关闭隐私模式: - 找到@BotFather,发送
/setprivacy命令 - 选择你正在开发的Bot,将隐私模式设置为
Disable即可
3. 额外权限检查
确认你已经将Bot添加到目标群组中,且给Bot分配了发送消息的权限,部分限制普通成员发言的群组需要给Bot设置管理员权限才能正常发消息。
修正后的代码示例
import telebot # 注意你需要先初始化bot实例,填入你从BotFather获取的token bot = telebot.TeleBot("你的Bot Token") @bot.message_handler(commands=['start', 'help']) def send_welcome(message): # 用动态获取的chat.id替代固定ID bot.send_message(message.chat.id,"Thanks for adding me!!") bot.infinity_polling()
内容的提问来源于stack exchange,提问作者Anandakrishnan
相关产品推荐
相关产品推荐

