Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DiscordJS-Bot未删除用户';DM中的s反应_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript DiscordJS-Bot未删除用户';DM中的s反应

Javascript DiscordJS-Bot未删除用户';DM中的s反应,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,因此,我编写了一个help命令,它通过键入来执行!频道中的帮助,此时会触发bot。我对进行了反应分页,机器人用我的反应内容编辑消息。请注意,以下代码是一个示例。当我在一个通道中执行它时,它就像一个符咒,用户的反应也会立即被移除。到目前为止还不错 问题 我希望它通过DM(直接消息)与msg.author.send()一起发送。它仍然会编辑消息,但不会立即删除反应,如上面的GIF所示。相反,我得到了以下错误: DiscordAPIError: Cannot execute action on a

因此,我编写了一个help命令,它通过键入
来执行!频道中的帮助
,此时会触发bot。我对进行了反应分页,机器人用我的反应内容编辑消息。请注意,以下代码是一个示例。当我在一个通道中执行它时,它就像一个符咒,用户的反应也会立即被移除。到目前为止还不错

问题

我希望它通过DM(直接消息)与
msg.author.send()
一起发送。它仍然会编辑消息,但不会立即删除反应,如上面的GIF所示。相反,我得到了以下错误:

DiscordAPIError: Cannot execute action on a DM channel                                                  
    at RequestHandler.execute (C:\xampp\htdocs\ht\discord\mihojs_beta\node_modules\discord.js\src\rest\R
equestHandler.js:154:13)                                                                                
    at processTicksAndRejections (internal/process/task_queues.js:93:5)                                 
    at async RequestHandler.push (C:\xampp\htdocs\ht\discord\mihojs_beta\node_modules\discord.js\src\res
t\RequestHandler.js:39:14) {                                                                            
  method: 'delete',                                                                                     
  path: '/channels/794019488176799744/messages/796506596003545098/reactions/2%EF%B8%8F%E2%83%A3/36298203
0025424907',                                                                                            
  code: 50003,                                                                                          
  httpStatus: 403                                                                                       
}

我知道该对象收集用户对其作出反应的数据,我假设在DM中它不起作用,因为它不是一个渠道,因此不是公会/服务器的一部分-我说的对吗?我似乎无法在中找到它,有人知道解决方案或解决方法吗?

在直接消息中,您不能删除消息或删除其他用户的反应

这意味着,对于直接消息,您有两个解决问题的选项:

  • 禁用直接消息中的命令
  • 检查频道是否为直接消息/您是否具有“管理\u消息”权限,并且不删除反应

指南中间接提到,您需要拥有DMs中没有的“管理邮件”权限,以删除其他用户的反应。

这太可惜了。正如我已经想到的,DM不是通道,也不是服务器的一部分,因此不存在权限。是的,我已经完成了有关权限的错误处理。我的代码已经检查了权限,我只是没有将它们放在示例中以避免不必要的代码。无论如何,感谢您的确认。如果您的问题已经解决,请使用绿色勾号将答案标记为已接受的解决方案,这将标记问题已解决。我知道,但它没有解决我的问题,因为目前既没有解决方案,也没有可能的解决方法。你只是同意并证实了我的假设。我为此感谢你,但这根本解决不了问题。我会让它开放的时候,以防新的功能出现在未来的不和谐,我们永远不知道。
DiscordAPIError: Cannot execute action on a DM channel                                                  
    at RequestHandler.execute (C:\xampp\htdocs\ht\discord\mihojs_beta\node_modules\discord.js\src\rest\R
equestHandler.js:154:13)                                                                                
    at processTicksAndRejections (internal/process/task_queues.js:93:5)                                 
    at async RequestHandler.push (C:\xampp\htdocs\ht\discord\mihojs_beta\node_modules\discord.js\src\res
t\RequestHandler.js:39:14) {                                                                            
  method: 'delete',                                                                                     
  path: '/channels/794019488176799744/messages/796506596003545098/reactions/2%EF%B8%8F%E2%83%A3/36298203
0025424907',                                                                                            
  code: 50003,                                                                                          
  httpStatus: 403                                                                                       
}