Telegram bot message_handler с лямбдой - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь использовать @ bot.message_handler с лямбдой для захвата некоторых слов в сообщениях, отправляемых в группе с моим ботом.Я вижу много примеров, и все используют код, подобный следующему:

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()

Он запускается, но если я посылаю "привет" в группе (с BOT внутри), BOT не сказал"Я тоже тебя люблю!"и я не знаю почему.Но если я говорю / запускаю, BOT говорит: «Добро пожаловать!»

Я пытался с @ bot.message_handler (func = lambda message: True), как я видел в https://github.com/eternnoir/pyTelegramBotAPI#a-simple-echo-bot, но опять же это нене работает.

Что я могу сделать, чтобы использовать message_handler и захватить некоторые слова в сообщении?

1 Ответ

0 голосов
/ 08 декабря 2018

По умолчанию режим конфиденциальности включен для ботов Telegram.

Бот, работающий в режиме конфиденциальности, не будет получать все сообщения, отправленные людьми в группу.Вместо этого он будет получать только:

Сообщения, начинающиеся с косой черты '/' (см. Команды выше)

Ответы на собственные сообщения бота

Служебные сообщения (люди добавлены)или удалены из группы и т. д.)

Сообщения из каналов, членами которых он является

Вы можете отключить режим конфиденциальности для своего бота через BotFather.

...