我想找到DM机器人的人的用户ID。有什么办法吗?我正在使用Discord.js 我尝试通过存储成员作者和成员ID来进行尝试,但没有成功。但是当我存储频道时,它将其存储为authors标签。但是该通道的ID与DM机器人的用户的ID不匹配。我正在尝试制作支持邮件机器人。但这需要用户ID,以便我可以通过DM用户来继续线程。但是,直到获得用户ID或服务器成员对象,这是不可能的。而且我无法在数据库中存储该DMchannel,因为我使用json来存储数据。
答案 0 :(得分:1)
尝试一下:
const client = new discord.Client();
client.login('token here');
/* On message event since you want to
* recieve DM and get ID from user who sent DM to your bot.
*/
client.on("message", (msg) => {
// checks if the message's channel type is 'DM'.
if(msg.channel.type === "dm") {
// you can do anything you want here. In my case I put console.log() function.
// since you wanted user ID, you can use msg.author.id property here.
console.log(`Recieved DM from ${msg.author.tag}, DM content is`, msg.content);
}
});
请记住,作者/成员ID和dm消息通道ID是完全分开的。
在JSON或SQL中存储与成员相关的数据也不是一个好主意。我建议您只对已生成的自定义数据执行此操作,否则会浪费大量内存。
答案 1 :(得分:0)
由于我的声誉低下,我无法对此发表评论,如果这不能回答您的问题,对不起。
您可以通过message.author.id
获取DM机器人的人的ID(请注意,message
将需要更改为存储消息的变量)。
您也可以使用message.channel.id
获取频道ID。
频道ID与用户ID不同(它们是两件事),我认为您是从id for that channel does not matchs with the id of the user who DM the bot
中误解了。