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

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

如何解决Discord.py如何从消息ID获取消息作者

我是编程不和谐机器人的新手。我目前正在使用on_raw_reaction_add(payload)on_raw_reaction_remove(payload)来跟踪使用某种反应的次数。有没有办法让我从有效负载获取消息作者或从payload.message_id获取消息作者?

解决方法

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

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

我误读了文档。感谢@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)

经过测试,它输出我的显示名称。作者是用户对象。

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