我是编程不和谐机器人的新手。我目前正在使用on_raw_reaction_add(payload)
和on_raw_reaction_remove(payload)
来跟踪使用某种反应的次数。有没有办法让我从有效负载中获取消息作者或从payload.message_id
中获取消息作者?
答案 0 :(得分:2)
以上答案部分正确,您需要TextChannel.fetch_message()
而不是Client.fetch_message()
msg = await bot.get_channel(payload.channel_id).fetch_message(payload.message_id)
author = msg.author
答案 1 :(得分:1)
我误读了文档。感谢@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)
经过测试,它输出我的显示名称。作者是用户对象。