Discord.py如何从消息id获取消息作者

Discord.py how to get message author from the message id

我是 discord 机器人编程新手。我目前正在使用 on_raw_reaction_add(payload)on_raw_reaction_remove(payload) 来跟踪某个反应被使用了多少次。有没有一种方法可以让我从有效负载中获取消息作者或从 payload.message_id 中获取消息作者?

我看错了文档。感谢@Poojan 指出这一点。 要修复您从他们的回答中得到的错误,您需要等待命令。我认为这是因为 fetch_message 调用某种 http 请求而不是从内存中复制信息。这意味着从请求到收到信息有一个延迟,需要使用关键字“await”等待。

@bot.event
async def on_raw_reaction_add(payload):
    msg = await bot.get_channel(payload.channel_id).fetch_message(payload.message_id)
    author = msg.author
    print(author.display_name)

已测试并输出我的显示名称。作者是一个用户对象。

以上答案部分正确,您需要TextChannel.fetch_message()而不是Client.fetch_message()

msg = await bot.get_channel(payload.channel_id).fetch_message(payload.message_id)
author = msg.author