获取有关discord.py消息的反应列表

获取有关discord.py消息的反应列表,discord.py,Discord.py,我一直在试图得到一个关于不和谐信息的反应列表,但我不知道我做错了什么。这是我的密码 async def reactionGetter(ctx): msg = await ctx.send('Message to put reactions on') await msg.add_reaction("✅") time.sleep(5) print(msg.reactions) 代码成功地添加了反应,但打印出一个空列表。我遗漏了什么?之所以出现这种

我一直在试图得到一个关于不和谐信息的反应列表,但我不知道我做错了什么。这是我的密码

async def reactionGetter(ctx):
    msg = await ctx.send('Message to put reactions on')
    await msg.add_reaction("✅")
    time.sleep(5)
    print(msg.reactions)

代码成功地添加了反应,但打印出一个空列表。我遗漏了什么?

之所以出现这种情况,是因为
msg=wait ctx.send('Message to put reactions on')
是临时的,它不是bot缓存消息中的消息。您只能获取缓存消息的反应,因此在您的情况下,
msg.reactions
将返回一个空白列表。
另外,您使用的是,
time.sleep(5)
,这是错误的,它会使整个程序停止5秒钟。对于异步函数,您必须导入
asyncio
并使用
asyncio.sleep()

您必须将功能更改为:

从异步IO导入睡眠
异步def reactionGetter(ctx):
msg=wait ctx.send('Message to put reactions on')
等待消息。添加\u反应(“✅")
等待睡眠(2)
cache_msg=discord.utils.get(bot.cached_messages,id=msg.id)或client.messages,具体取决于您的变量
打印(缓存消息反应)
参考:

您可以使用,这将强制您的机器人通过API调用从Discord获取消息信息,而不是依赖Discord通过websocket更新您的客户端

async def reactionGetter(ctx):
    msg = await ctx.send('Message to put reactions on')
    await msg.add_reaction("✅")
    msg = await msg.channel.fetch_message(msg.id)  # Can be None if msg was deleted
    print(msg.reactions)

谢谢,这很有用!我仍然对此方法有问题。“客户端”对象没有属性“消息”,或者“Bot”对象没有属性“消息”。我的Bot和客户端如下;
Bot=commands.Bot(command_prefix=”!)Client=discord.Client()me=discord.ClientUser
msg.channel.fetch\u消息方法正在工作,但我总是想找到更多的方法来解决问题。很抱歉回复太晚,应该是
bot.cached\u消息
^ ^