gpt4 book ai didi

node.js - 有没有办法让我的机器人检查私信并将其发布到我服务器的 channel 中?

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:05 26 4
gpt4 key购买 nike

当有人私信机器人时,如何让我的机器人将消息发送到特定 channel ?我正在考虑 webhooks,但我不确定这是否是正确的方法。

最佳答案

是的,你可以。
现在怎么样?

您必须首先收到 dm 消息。 Message具有属性channel,它表示接收消息的 channel 。该属性可以有 3 种不同的类型,全部从 Channel 扩展。其具有 type 属性。
type 属性可以有 6 个值:

  • dm - DM channel
  • 群组 - 群组 DM channel
  • 文本 - 公会文本 channel
  • 语音 - 公会语音 channel
  • 类别 - 公会类别 channel
  • 新闻 - 公会新闻 channel
  • 商店 - 公会商店 channel

以及来自属性 Message.channel有这样的指示:

Type: TextChannel or DMChannel or GroupDMChannel

所以这里我们有 message.channel.type 的 3 个可能的结果:"dm", "text", "组”

检查消息是否为私信后,您必须将其复制到您的服务器。同样,Message 类型对我们来说具有有趣的属性:contentattachments

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

但是对于content来说,这真的很简单,它只是一个字符串。所以我们只需要获取我们的 channel 并发送消息即可。

在下面的示例中,我通过使用 ID 来获取公会和服务器。您可以对它们进行硬编码,将它们放入 json 文件、数据库中,或者将它们放入消息中并使 dm 成为命令,例如:
+向ID发送一条包含很多单词的消息

let channelID = "X";
let guildID = "X";
client.on('message', (message) => {
if(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);
}
});

enter image description here
enter image description here

关于node.js - 有没有办法让我的机器人检查私信并将其发布到我服务器的 channel 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60013403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com