我想知道如何从message id
获取消息内容(特别是嵌入内容)吗?就像您可以使用member id
答案 0 :(得分:2)
on_raw_reaction_add()
示例:@bot.event
async def on_raw_reaction_add(payload):
channel = bot.get_channel(payload.channel_id)
msg = await channel.fetch_message(payload.message_id)
embed = msg.embeds[0]
# do something you want to
@bot.command()
async def getmsg(ctx, channel: discord.TextChannel, msgID: int):
msg = await channel.fetch_message(msgID)
await ctx.send(msg.embeds[0].description)
在我要传递的命令channel
和msgID
中,因此示例命令执行将像!getmsg #general 112233445566778899
一样-通道必须与您正在执行的命令位于同一服务器中命令!
然后,我使用fetch_message()
协程获取消息对象,这使我可以在所述消息中获取embeds
的列表。然后,我通过选择位置索引0
来选择第一个也是唯一的嵌入。
然后,机器人将发送嵌入的描述(或您想要的任何属性)。
参考:
discord.TextChannel
TextChannel.fetch_message()
Message.embeds
discord.Embed
-在这里您可以找到嵌入的不同属性commands.command()
-命令装饰器on_raw_reaction_add()
discord.RawReactionActionEvent
-反应事件返回的有效载荷RawReactionActionEvent.message_id
-反应的消息的ID RawReactionActionEvent.channel_id
-添加了反应的文本通道