如何使用 discord.js 使用 discord 机器人发送 DM

Posted

技术标签:

【中文标题】如何使用 discord.js 使用 discord 机器人发送 DM【英文标题】:How do you send a DM using a discord bot using discord.js 【发布时间】:2020-09-14 20:06:57 【问题描述】:

所以我正在尝试制作一个机器人,它有一个发送“票”的命令,这就像一个警告,除了它在 DM 中发送一条可配置的消息。到目前为止,这是我的代码:

const bot = new Discord.Client()
const token = token here;
const PREFIX = '/';
const embed = new Discord.MessageEmbed()
const ping = require('minecraft-server-util')
bot.on('ready', async () => 
  console.log('This bot is online! Created by @littleBitsman.');
)

bot.on('message', message => 
  let args = message.content.substring(PREFIX.length).split(' ')
  if(message.content.startsWith(PREFIX))
  switch (args[0]) 
    case 'ticket':
      if (message.member.roles.highest == '701895573737046066') 
        mention = message.mentions.users.first()
        var thing = args.shift()
        thing = args.shift()
        thing = thing.replace(",", " ")
        if(mention = null) return
        var message = new Discord.MessageEmbed()
          .setTitle('Ticket')
          .setDescription('Hey ' + mention + '! You recieved this because of: ' + args +'.')
        message.channel.type(`dm`) + message.channel.send(mentionMessage)
      
      
  )
bot.login(token);

我去掉了所有与这个问题无关的代码。

【问题讨论】:

【参考方案1】:

要向特定用户发送消息,您可以使用message.client.users.fetch(`insert_ID`).then(user => user.send('message'))

您似乎正在尝试向提到的用户发送消息。在这种情况下:

message.client.users.fetch(`$mention.id`).then(user => user.send('insert_message'))。 希望这会有所帮助!

【讨论】:

现在我收到一条错误消息,上面写着TypeError: Cannot read property 'id' of null。如果我从$mention.id 中删除id,则错误为(node:8560) UnhandledPromiseRejectionWarning: DiscordAPIError: Invalid Form Body user_id: Value "null" is not snowflake. 尝试在mention 变量下创建一个名为mentionID 的变量。给它mention.id 的值。然后不是$mention.id,而是$mentionID 现在它给出了这个错误,箭头指向id:mentionID = mention.id 也许尝试创建另一个变量,例如提到,并给它message.mentions.members.first()的值,对于mentionID,而不是mention.id,做提到.id(基本上意味着你有一个变量称为提及,另一个变量称为提及)mention 定义为message.mentions.users.first()mentioned 定义为message.mentions.members.first()

以上是关于如何使用 discord.js 使用 discord 机器人发送 DM的主要内容,如果未能解决你的问题,请参考以下文章

createReactionCollector 在 discord.js 中不起作用

db.run 不是函数:Discord.js sqlite

MessageCreate.js 数据库前缀问题 - Discord.js v13/MongoDB

我将如何使用两个不同版本的 discord.js | Discord.js 机器人

如何使用 discord.js 使用 discord 机器人发送 DM

如何使用 discord.js 创建角色