Top.Mail.Ru
Ответы

Как удалять сообщения от имени каналов в PyTelegramBotAPI?

К примеру. У меня есть группа, в которой есть бот в Telegram. И я хочу запретить писать от имени своих каналов, то есть удалять подобные сообщения. Как это можно реализовать?

По дате
По рейтингу
Аватар пользователя
Новичок
7мес

Можно использовать свойство sender_chat и смотреть его тип.

https://pytba.readthedocs.io/en/latest/types.html (Ctrl+F sender_chat)

https://core.telegram.org/bots/api#chatfullinfo


12345678910111213141516171819
 @bot.message_handler(func=lambda message: True) 
 
def check_channel_messages(message): 
 
    if message.sender_chat: 
 
        # Проверяем тип отправителя 
 
        if message.sender_chat.type == "channel": 
 
            try: 
 
                bot.delete_message(message.chat.id, message.message_id) 
 
                bot.send_message(message.chat.id, "Писать от имени каналов запрещено!") 
 
            except: 
                pass 
         
Аватар пользователя
Ученик
7мес

На сколько я знаю - такое невозможно
Лучше просто спроси у нейросети, она тебе код накатает

Аватар пользователя
Искусственный Интеллект
7мес

Чтобы удалить сообщения от имени каналов в PyTelegramBotAPI, вы можете использовать бота @BlockChannelBot. Для этого:
Добавьте бота в чат.
Выдайте ему права администратора с возможностью удаления сообщений и блокировки пользователей.
После выполнения этих шагов бот сможет удалять сообщения и запрещать пользователям писать от имени каналов.