Discord.js 无法向该用户发送消息

Posted

技术标签:

【中文标题】Discord.js 无法向该用户发送消息【英文标题】:Discord.js Can't send message to this user 【发布时间】:2020-10-01 21:47:36 【问题描述】:

如果我遇到此错误,它将发送一条消息嵌入,并显示有关如何打开直接消息的图片。

但我不知道如何截取代码并发送此消息

if (error.code === 50007)
  message.channel.send(Embedcantchat);

错误来源

reason: DiscordAPIError: Cannot send messages to this user
    at C:\Users\nawap\OneDrive\Desktop\Discord\bot all\nirtogiven\node_modules\discord.js\src\client\rest\RequestHandlers\Sequential.js:79:15
    at C:\Users\nawap\OneDrive\Desktop\Discord\bot all\nirtogiven\node_modules\snekfetch\src\index.js:215:21
    at processTicksAndRejections (internal/process/task_queues.js:97:5) 
  name: 'DiscordAPIError',
  message: 'Cannot send messages to this user',
  path: '/api/v7/channels/720870400808190013/messages',
  code: 50007,
  method: 'POST'

【问题讨论】:

该用户禁用了来自朋友以外的任何人的 DM。 “新手”没有错。 【参考方案1】:

用户可能关闭了某个服务器的 DM,因此该服务器中的成员将无法发送 DM。您可以在单击服务器名称时进行设置 -> 隐私设置

【讨论】:

【参考方案2】:

您应该使用 try/catch,而不是尝试在错误代码上发送消息,如下所示:

try 
   // message to send the user

catch (error) 
   message.channel.send(Embedcantchat);
   // other error handling

如果在尝试发送消息时发现错误,那么它将自动发送Embedcantchat,假设它已定义。

【讨论】:

以上是关于Discord.js 无法向该用户发送消息的主要内容,如果未能解决你的问题,请参考以下文章

无法将 DM 发送到消息到 DB discord.js 中的存储用户

Discord.js 代码无法发送嵌入消息 [关闭]

向一组用户发送私人消息(Discord.js)

Discord.js 机器人无法向特定频道发送消息

无法发送空消息 - Discord.JS v13

检查用户是不是可以在提到的频道 discord.js 中发送消息