微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Telethon库从电报中删除计划的消息

如何解决使用Telethon库从电报中删除计划的消息

我几乎是电报机器人开发的新手,并且具有使用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])

这不起作用。我也尝试过像这样的消息对象的删除方法

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

是否缺少某些内容,或者没有什么可以删除尚未发送的预定消息!

解决方法

要删除您安排的邮件,您首先需要使用GetScheduledHistoryRequest来获取它们,然后您可以使用DeleteScheduledMessagesRequest删除所有您想要的邮件。

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

要编辑计划的消息,由于edit_messages()edit()函数似乎无法正常处理计划的消息,因此您需要使用电报原始API messages.editMessage。 / p>

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

请记住,我已经参考较旧的消息将所有参数填充到EditMessageRequest()函数中,但是您应该能够编辑no_webpagemedia,{{ 1}}没问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。