说我有一个消息ID,我该如何通过另一个频道中的ID删除该特定消息?
我目前有一个机器人将原始消息和机器人消息ID都发送给另一台不和谐的服务器的用户消息。现在,当用户从原始服务器删除他们的消息时,我希望机器人通过消息ID在我的其他服务器中删除该消息。
带有两个消息ID的数组如下:
allmessages = [[id1,id2],[id1,id2],[id1,id2]] #. . . so on
我正在使用它来查看用户何时删除邮件:
@client.event
async def on_message_delete(message):
在其中,我有一个for循环,该循环遍历我的消息以查看哪个ID被删除,然后获取另一个我要删除的ID。通过ID删除消息的部分...我已经尝试了一切:
if message.channel.id == idGoesHere:
channel = client.get_channel(theOtherChannelID)
msg = IDIwantToDelete
await msg.delete()
或者:
await client.http.delete_message(channel, msg)
什么都没有。
如何通过简单易用的频道ID删除邮件?
我也不想听到告诉我使用on_message
侦听器函数删除内部内容的答案,这不是我对机器人的使用。我不想立即删除一条消息,仅当删除侦听器被调用时。谢谢。
答案 0 :(得分:1)
存储消息对象而不是ID是可行的。 :)
答案 1 :(得分:0)
您可以使用fetch_message
来检索消息对象,然后调用其删除方法:
msg = await channel.fetch_message(id)
await msg.delete()