Python 使用telethon库从电报中删除预定消息
我对telegram机器人开发几乎是新手,并且在使用telethon python库方面有基本经验。 我正在进行一个项目,我需要使用telethon安排消息,然后根据需要删除消息。我使用以下代码来安排电报频道和组上的消息Python 使用telethon库从电报中删除预定消息,python,telegram,message,schedule,telethon,Python,Telegram,Message,Schedule,Telethon,我对telegram机器人开发几乎是新手,并且在使用telethon python库方面有基本经验。 我正在进行一个项目,我需要使用telethon安排消息,然后根据需要删除消息。我使用以下代码来安排电报频道和组上的消息 await client.send_message(receiver, message_text, schedule=schedule_time) 当我需要获取该频道的预定消息时,我使用以下代码从电报服务器获取消息 result = await self.client(fun
await client.send_message(receiver, message_text, schedule=schedule_time)
当我需要获取该频道的预定消息时,我使用以下代码从电报服务器获取消息
result = await self.client(functions.messages.GetScheduledHistoryRequest(
peer=target,
hash=0
))
我想删除我安排的邮件。我已经阅读了telethon库的文档,发现下面的代码可以删除这些消息
group = await client.get_entity(group_id)
list_of_messages = await get_scheduled_messages(group_id)
for message in list_of_messages:
status = await client.delete_messages(group, [message.id])
这是行不通的。我也尝试过这样的消息对象的delete方法
group = await client.get_entity(group_id)
list_of_messages = await get_scheduled_messages(group_id)
for message in list_of_messages:
await message.delete()
是否有我遗漏的东西或没有任何东西可以删除尚未删除的预定邮件 要删除预定的邮件,您必须首先使用获取它们,然后使用删除所有您喜欢的邮件 为了编辑计划消息,由于
编辑_messages()
和编辑()
功能似乎不能正确处理计划消息,因此需要使用电报原始API
请记住,我已经参考了较旧的消息,将所有参数填入
EditMessageRequest()
函数,但是您应该能够编辑no\u网页
,媒体
,计划日期
,没有任何问题。嘿!非常感谢你。我就是没找到那种方法。您能告诉我是否有任何方法可以编辑预定的邮件吗?
chat = await client.get_input_entity('yourchat')
result = await client(functions.messages.GetScheduledHistoryRequest(
peer=chat,
hash=0
))
# use result.messages to access the list of scheduled messages
msg = result.messages[0] # or any other message you want to delete
await client(functions.messages.DeleteScheduledMessagesRequest(
peer=chat,
id=[msg.id] # !imporant you need to pass a list here
))
chat = await client.get_input_entity('yourchat')
result = await client(functions.messages.GetScheduledHistoryRequest(
peer=chat,
hash=0
))
msg = result.messages[0] # or any other message you want to edit
await client(functions.messages.EditMessageRequest(
peer = msg.to_id,
id = msg.id,
message = 'new text',
no_webpage= False, # didn't find anything into the Message object to refer to
entities= msg.entities,
media= msg.media,
reply_markup = msg.reply_markup,
schedule_date= msg.date
))