Discord TypeError:channel.send不是函数(已弃用?)

Discord TypeError:channel.send不是函数(已弃用?),discord,discord.js,Discord,Discord.js,我试图建立一个不和谐的机器人,但我需要发送一个消息到一个特定的渠道。我已经尝试了100次,但一直得到: TypeError:bot.channels.fetch(…).send不是函数。 我读到的每一个地方都会看到“use channel.send()”,但我找不到解决问题的实际方法。channel.send()是否已弃用?以下是错误引发错误的行: bot.channels.fetch(id)、send(message) 我知道channels.get()已被删除,当使用.fetch(id)时,

我试图建立一个不和谐的机器人,但我需要发送一个消息到一个特定的渠道。我已经尝试了100次,但一直得到:

TypeError:bot.channels.fetch(…).send不是函数。

我读到的每一个地方都会看到“use channel.send()”,但我找不到解决问题的实际方法。channel.send()是否已弃用?以下是错误引发错误的行:

bot.channels.fetch(id)、send(message)

我知道channels.get()已被删除,当使用.fetch(id)时,我得到了channel对象,但它不允许我发送消息。任何帮助都将不胜感激,因为我已经独自为此花费了数天时间。 谢谢

完整代码块:

var reportEmbed = new Discord.MessageEmbed()
   .setColor('#0099ff')
   .setTitle('New Report')
   .setAuthor(msg.author.tag)
   .setDescription(reportMessage)
   .setTimestamp();
console.log(bot.channels.fetch('my channel id'));
bot.channels.fetch('my channel id').then(channel => {
   channel.send(reportEmbed);
});

当控制台登录时,我得到了正确的通道对象。

正如我在文档中看到的,fetch()方法返回一个承诺。()

因此,为了获得频道,您需要使用当前代码:

bot.channels.fetch(“id”)。然后(channel=>{
信道发送(消息);
});

正如我在文档中看到的,fetch()方法返回一个承诺。()

因此,为了获得频道,您需要使用当前代码:

bot.channels.fetch(“id”)。然后(channel=>{
信道发送(消息);
});
尝试使用:

bot.channels.cache.get(id).send(message)
相反

尝试使用:

bot.channels.cache.get(id).send(message)


相反

它对我来说非常有效。尝试将您的discord.js版本更新为最新版本。通常是的。我不明白为什么它不起作用,因为它在我这边起作用。它可能没有通过该id找到频道。如果您将更多代码放在某个粘贴箱中,以便我们可以查看它,则可能会有所帮助。机器人是否有权访问该特定频道?就像它在服务器中一样?机器人绝对可以访问它。但是如果机器人没有访问权限,另一个错误是showedIt在我这方面非常有效。尝试将您的discord.js版本更新为最新版本。通常是的。我不明白为什么它不起作用,因为它在我这边起作用。它可能没有通过该id找到频道。如果您将更多代码放在某个粘贴箱中,以便我们可以查看它,则可能会有所帮助。机器人是否有权访问该特定频道?就像它在服务器中一样?机器人绝对可以访问它。但是如果bot没有访问权限,则会显示另一个错误,请尝试。我得到了“TypeError:channel.send不是函数”。这是我运行的行:
bot.channels.cache.get('my channel id')。send(reportEmbed)
where“report embed是一个Discord.MessageEmbed对象。这一行没有包含
channel.send()
函数,所以我认为它指向了另一行。我很愚蠢。它在同一行代码中抛出了一个类似的错误,但我没有意识到。我修复了第二个错误,现在它可以工作了。非常感谢!我一直被告知。get()总的来说,这是一个令人费解的问题,但是,呃,谢谢你,伙计:)
bot.channels.get()
被弃用了,我想这就是为什么你会感到困惑的原因。
discord.js
v12+使用
Managers
,因此现在需要缓存属性(
bot.channels.cache.get
)刚刚尝试过。我得到了“TypeError:channel.send不是函数“。这是我运行的一行:
bot.channels.cache.get('my channel id').send(reportEmbed)
where“report embed是一个Discord.MessageEmbed对象。这一行没有包含
channel.send()
函数,所以我认为它指向了另一行。我很愚蠢。它在同一行代码中抛出了一个类似的错误,但我没有意识到。我修复了第二个错误,现在它可以工作了。非常感谢!我一直被告知。get()总的来说,这是一个很糟糕的例子,但是,呃,谢谢你,伙计:)
bot.channels.get()
被弃用了,我想这就是为什么你感到困惑的原因。
discord.js
v12+使用
Managers
,因此现在需要缓存属性(
bot.channels.cache.get
)请显示更多代码。该代码块在哪个事件函数中?请显示更多代码。该代码块在哪个事件函数中?