Чтобы бот принимал все сообщения, сначала необходимо настроить его в @ BotFather , отключив конфиденциальность бота:
- / start
- / mybots
- (выберите бота)
- Настройки бота
- Групповая конфиденциальность
- Отключите
После этого добавьте бот как администратор вашего канала вещания (они не могут быть нормальными членами здесь). Ваш код должен выглядеть следующим образом:
CHANNEL = ... # id, username or invite link of the channel
# the first parameter is the `chats=`, you can use a named argument if you want
@bot.on(events.NewMessage(CHANNEL))
async def my_event_handler(event):
print(event.stringify())
Если вы хотите обрабатывать сообщения от всех широковещательных каналов вашей группы, используйте более продвинутый фильтр:
# megagroups (supergroups) are channels too, so we need `not e.is_group`
# this lambda takes the event, which has these boolean properties
@bot.on(events.NewMessage(func=lambda e: e.is_channel and not e.is_group))
async def my_event_handler(event):
print(event.stringify())