从发送给机器人的DM消息中获取用户ID

时间:2019-04-29 07:17:27

标签: discord.js userid dm

我想找到DM机器人的人的用户ID。有什么办法吗?我正在使用Discord.js 我尝试通过存储成员作者和成员ID来进行尝试,但没有成功。但是当我存储频道时,它将其存储为authors标签。但是该通道的ID与DM机器人的用户的ID不匹配。我正在尝试制作支持邮件机器人。但这需要用户ID,以便我可以通过DM用户来继续线程。但是,直到获得用户ID或服务器成员对象,这是不可能的。而且我无法在数据库中存储该DMchannel,因为我使用json来存储数据。

2 个答案:

答案 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中误解了。