discord.js 如何从 fetchMessage 事件中获取“反应用户”列表?

Posted

技术标签:

【中文标题】discord.js 如何从 fetchMessage 事件中获取“反应用户”列表?【英文标题】:discord.js How to obtain a "reactions user's" list from a fetchMessage event? 【发布时间】:2019-07-10 12:02:33 【问题描述】:

我试图弄清楚如何使用fetchMessage 事件获取对频道中的消息提供反应的用户列表。我成功地获得了用户数量或表情符号本身的计数,但是,实际的用户列表并没有显示出来。

我正在使用

message.channel.fetchMessage(MessageID).then(themessage => 

let MessageOBJ = themessage.reactions.find(r => r.name === "emoji Unicode");

console.log(MessageOBJ.users);

);

当我去调用 MessageOBJ.users 时,它是一个空对象或看起来是。其他一切都正确显示,包括做出反应的用户数。

任何帮助将不胜感激。

谢谢!

【问题讨论】:

谢谢dpap! 【参考方案1】:

因此,事实证明,您只能在机器人重新启动后才能获得此信息。方法是正确的。只有在机器人重新启动后创建消息并做出反应时才会向用户显示。如果您再次重新启动机器人,所有这些信息都将再次无法获取。

【讨论】:

嗯,你是对的,它似乎只知道自机器人启动以来做出反应的用户。如果您进行扫描和 fetchMessage,它甚至不知道任何做出反应的用户。当然必须有一种方法来获取已做出反应的用户列表(即可能在另一个 API 中)【参考方案2】:

您必须调用另一个 API 才能让用户做出反应

MessageOBJ.fetchUsers().then(users => 
        console.log(users); 
);

fetchUsers documentation

【讨论】:

以上是关于discord.js 如何从 fetchMessage 事件中获取“反应用户”列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何从提及 discord.js 添加角色

discord.js - 如何从嵌入中读取数据

您如何从单独的命令模块访问主要的 Discord“.js”

如何从 discord.js 中删除 [object Promise]?

如何从 json 响应中连接来自不同对象数组的值? Node.js、Discord.js

Discord.js 集合;如何从集合中的数组中导航和抓取/计数对象