Python 如何从已删除的邮件中获取嵌入内容? @commands.Cog.listener() 原始消息上的异步定义删除(自身,有效负载): 尝试: 康涅狄格州 除: 通过 打印(“已删除”) 通道=self.client.get\u通道(payload.channel\u id) message=wait channel.fetch_message(payload.message_id)#

Python 如何从已删除的邮件中获取嵌入内容? @commands.Cog.listener() 原始消息上的异步定义删除(自身,有效负载): 尝试: 康涅狄格州 除: 通过 打印(“已删除”) 通道=self.client.get\u通道(payload.channel\u id) message=wait channel.fetch_message(payload.message_id)#,python,discord.py,embed,message,Python,Discord.py,Embed,Message,如果希望嵌入消息,可以使用on_message_delete事件,因为它提供消息对象,如下所示: async def on_message_delete(消息):#每次删除消息时触发的事件 尝试: 康涅狄格州 除: 通过 打印(“已删除”) emb=message.embeds 教统局的小微: cursor.execute(f“从建议中删除,其中通道id={message.channel.id}和id={message.guild.id},代码={mes.fields[1].value}”) 康

如果希望嵌入消息,可以使用
on_message_delete
事件,因为它提供消息对象,如下所示:

async def on_message_delete(消息):#每次删除消息时触发的事件
尝试:
康涅狄格州
除:
通过
打印(“已删除”)
emb=message.embeds
教统局的小微:
cursor.execute(f“从建议中删除,其中通道id={message.channel.id}和id={message.guild.id},代码={mes.fields[1].value}”)
康涅狄格州提交

我认为错误本身就说明了问题,您无法获取不存在的消息。如何从不存在的消息(嵌入)中获取内容?如果我之前的评论不够明显,您不能。除非它被bot缓存,否则我无法在重启后从旧消息中获取内容
    @commands.Cog.listener()
    async def on_raw_message_delete(self, payload):
        try:
            conn.reconnect()
        except:
            pass
        print("deleted")
        channel=self.client.get_channel(payload.channel_id)
        message=await channel.fetch_message(payload.message_id) #<===========
        emb=message.embeds
        for mes in emb:
            cursor.execute(f"DELETE FROM suggestions WHERE channel_id={payload.channel_id} and id={payload.guild_id} and code={mes.fields[1].value}")
            conn.commit()
    @commands.Cog.listener()
    async def on_raw_message_delete(self, payload):
        try:
            conn.reconnect()
        except:
            pass
        print("deleted")
        channel=self.client.get_channel(payload.channel_id)
        message=payload.cached_message
        emb=message.embeds  #<===========
        for mes in emb:
            cursor.execute(f"DELETE FROM suggestions WHERE channel_id={payload.channel_id} and id={payload.guild_id} and code={mes.fields[1].value}")
            conn.commit()