首页 > 解决方案 > 在 Telebot 中开发的机器人在私人消息中工作,而不是在群组中工作

问题描述

我在 Telebot 中开发的机器人无法在群组中工作,它假设会发现“坏词”并删除消息,但无法正常工作。

我试图让它在私人消息上工作,它做到了

预期:从列表中删除包含单词的消息,并回复消息。

结果:仅在私人消息中而不是在群组中这样做:(


import telebot
import time


bot_token = 'TOKEN'
bot = telebot.TeleBot(token=bot_token)


bw = ['poop']

def has_curse(msgr):
    b = False

    for i in range(len(bw)):
        if bw[i] in msgr:
            b = True
            break
    return b



@bot.message_handler(func = lambda msg: msg.text is not None)
def at_answer(message):
    if has_curse(message.text):
        bot.reply_to(message,'your message has been deleted')
        bot.delete_message(message.chat.id, message.message_id)

while True:
    try:
        bot.polling()
    except Exception:
        time.sleep(15)

标签: pythontelegramtelegram-bot

解决方案


默认情况下,机器人以隐私模式运行。如文档中所述

在隐私模式下运行的机器人不会收到人们发送给群组的所有消息。相反,它只会收到:

  • 以斜杠“/”开头的消息</li>
  • 回复机器人自己的消息
  • 服务消息(在群组中添加或删除的人等)
  • 来自其会员频道的消息

因此,如果您的机器人根本没有收到更新,这就是原因。

由于您的机器人应该扫描组中发送的每条消息,因此使其工作的唯一方法是关闭隐私模式。


推荐阅读