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

我对telegram机器人开发几乎是新手,并且在使用telethon python库方面有基本经验。 我正在进行一个项目,我需要使用telethon安排消息,然后根据需要删除消息。我使用以下代码来安排电报频道和组上的消息

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