电报bot message_handler与lambda

时间:2018-12-08 16:57:56

标签: python lambda bots telegram message-handlers

我正在尝试将@ bot.message_handler与lambda结合使用,以捕获与我的机器人成组发送的消息中的某些单词。我看到很多示例,每个人都使用类似于以下的代码:

import telebot

telebot.logger.setLevel(__import__('logging').DEBUG)

bot_token = 'Blablabla'

bot = telebot.TeleBot(bot_token)

# filter on a specific message
@bot.message_handler(func=lambda message: message.text == "hi")
def command_text_hi(m):
    bot.send_message(m.chat.id, "I love you too!")

@bot.message_handler(commands=['start'])
def send_welcome(m):
    bot.send_message(m.chat.id, 'Welcome!')

@bot.message_handler(func=lambda message: True, content_types=['text'])
def command_default(m):
    # this is the standard reply to a normal message
    bot.send_message(m.chat.id, "I don't understand, try with /help")

bot.polling()

它运行了,但是如果我在组中发送“ hi”(里面有BOT),BOT不会说“我也爱你!”我不为什么。但是,如果我说/ start,BOT会说“欢迎!”

我在https://github.com/eternnoir/pyTelegramBotAPI#a-simple-echo-bot中看到了@ bot.message_handler(func = lambda message:True)的尝试,但同样没有用。

如何使用message_handler并捕获消息中的某些单词?

1 个答案:

答案 0 :(得分:1)

默认情况下,Telegram机器人已启用privacy mode

  

以隐私模式运行的漫游器不会收到人们发送给网上论坛的所有消息。相反,它将仅接收:

     

以斜杠“ /”开头的邮件(请参见上面的命令)

     

回复机器人自己的消息

     

服务消息(添加或删除组中的人员等)

     

来自其成员所在频道的消息

您可以通过BotFather禁用机器人的隐私模式。