Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.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
Node.js 是否有一种方法允许我的机器人检查DMs并将其发布到我服务器的通道中?_Node.js_Bots_Discord_Discord.js_Dm - Fatal编程技术网

Node.js 是否有一种方法允许我的机器人检查DMs并将其发布到我服务器的通道中?

Node.js 是否有一种方法允许我的机器人检查DMs并将其发布到我服务器的通道中?,node.js,bots,discord,discord.js,dm,Node.js,Bots,Discord,Discord.js,Dm,当有人对我的机器人进行DMs时,我如何让我的机器人将消息发送到带有消息的特定通道?我在考虑Webhook,但我不确定这样做是否正确。是的,你可以。 现在怎么办 您必须首先获得dm消息。具有属性channel,表示接收消息的通道。此属性可以有3种不同的类型,所有类型的扩展都有一个type属性。 此类型属性可以有6个值: dm-一个dm通道 组-a组DM通道 文本-公会文本频道 语音-公会语音频道 类别-公会类别频道 新闻-工会新闻频道 商店-公会商店频道 从财产中可以看出: 类型:textco

当有人对我的机器人进行DMs时,我如何让我的机器人将消息发送到带有消息的特定通道?我在考虑Webhook,但我不确定这样做是否正确。

是的,你可以。
现在怎么办

您必须首先获得dm消息。具有属性
channel
,表示接收消息的通道。此属性可以有3种不同的类型,所有类型的扩展都有一个
type
属性。
类型
属性可以有6个值:

  • dm-一个dm通道
  • 组-a组DM通道
  • 文本-公会文本频道
  • 语音-公会语音频道
  • 类别-公会类别频道
  • 新闻-工会新闻频道
  • 商店-公会商店频道
从财产中可以看出:

类型:
textconnel
DMChannel
GroupDMChannel

因此,这里我们有3个可能的
message.channel.type
结果:
“dm”
“text”
“group”

一旦检查了邮件是否为dm,就必须将其复制到服务器。同样,
消息
类型对我们来说具有有趣的属性:
内容
附件

处理附件的方式比内容本身要复杂一些。您必须查找类型并使用其属性,如
url

但是对于
内容
来说非常简单,它只是一个字符串。所以我们只需要找到我们的频道并发送信息

在下面的例子中,我通过使用他们的ID来获取帮会和服务器。您可以硬编码它们,将它们放入json文件、数据库或在消息中获取它们,并将dm作为命令,如:
+向ID发送包含多个单词的消息

让channelID=“X”;
让guildID=“X”;
client.on('消息',(消息)=>{
如果(message.channel.type==='dm'){
let embed=new Discord.RichEmbed()
.setAuthor(client.guilds.get(guildID).members.get(message.author.id).displayName,message.author.displayAvatarURL)
.setColor(“#FAA”)
.setDescription(message.content);
client.channels.get(channelID).send(embed);
}
});


您的意思是在discord上接收dm并将其发送到您的一个discord服务器?我希望它接收dm,并将其发送到我的服务器中的一个频道。您希望从哪里接收dm?从bots DMs。您检查过webhooks吗?