Telethon delete_messages, похоже, ничего не делает
Справка: Относительно новичок в Telethon и возникли проблемы с delete_messages()
функция. Это, кажется, ничего не делает для меня...
Изначально я получаю идентификатор сообщения из send_message, из значения идентификатора возвращаемого объекта. Он возвращает значения, такие как 1, 2 и т. Д. Не уверен, что это идентификатор сообщения, хотя.
Я отправляю это delete_messages
как delete_messages(channel, [id])
Я получаю канал (это частный канал) от:
def resolve_channel_id(self, name):
try:
if name in self.__channel_ids:
return self.__channel_ids[name]
channel_id = self.client(ResolveUsernameRequest(name))
self.__channel_ids[name] = channel_id
return channel_id
# except UserNameNotOccupiedError as err:
except Exception as err:
# try for private channel
chatinvite = self.client(CheckChatInviteRequest(name))
channel_id = chatinvite.chat.id
access_hash_channel = chatinvite.chat.access_hash
channel_id = InputChannel(channel_id, access_hash_channel)
self.__channel_ids[name] = channel_id
return channel_id
2 ответа
Надеюсь этот пример пригодится друзьям:
по этому коду, если сообщение с Hello
текст отправляется в группу с идентификатором -1001300989487
этот текст будет удален.
import logging
from telethon import TelegramClient, events
logging.basicConfig(level=logging.INFO)
api_id = XXXXXX
api_hash = 'XXXXXXXXXXXXXXXXXXXXXXX'
phone_number = '+989XXXXXXXX'
################################################
client = TelegramClient('session_name',
api_id,
api_hash,
)
@client.on(events.NewMessage(chats=(-1001300989487)))
async def my_event_handler(event):
if 'hello' in event.raw_text:
await event.delete()
client.start()
client.run_until_disconnected()
print('finish')
Работает путем обновления до последнего телетона: 1.0.3 и следующей документации... https://telethon.readthedocs.io/en/latest/extra/basic/asyncio-magic.html