所以,我正在尝试编写一个简单的机器人,每当聊天中有人发送文本“我是”时,机器人就会回复“我是”。 这是我迄今为止使用 pytelegrambotapi 的代码:
API_Key = "5*******2:AAH**************************o"
bot = telebot.TeleBot(API_Key)
@bot.message_handler(regexp="I am")
def message(message):
bot.send_message(message.chat.id, "I am")
bot.infinity_polling()
出于某种原因,机器人会回答“/我是”,但不会回答“我是”。仅当它类似于带有“/”的命令时。
如果用户只发送“我是”,我的机器人如何发送消息? 在私人聊天中一切正常。只有在团体中才会这样。
您需要使用 Telegram 中的 BotFather 更改您的机器人设置。 转到机器人 > 机器人设置 > 群组隐私 > 关闭。 这样,机器人将接收所有消息,即使不是以命令前缀
/
开头。
有关详细信息,请参阅此有关机器人收到的消息的官方链接。
如果您仍在寻找答案,或者有人只是偶然发现了这个问题 - 这是因为机器人需要成为群聊中的管理员才能访问所有消息。否则,它只能看到命令(消息,以 / 开头)并回复组中自己的消息。
希望这有帮助!