Node.js Discord Webhooks通道返回未定义
我刚开始使用Webhook,我仔细阅读了discord文档,以帮助我建立一个非常基本的机器人。在这一点上,我想做的就是让机器人上线,并使用webhook发布帖子。我甚至直接从Discord Webhooks文档中复制了基本代码,但我无法实现 使用一些控制台日志,我确定client.channels.cache.get(config.webhookID);返回未定义的,因此channel.fetchWebhooks()不是函数。这仍然是获取频道中的Webhook的方法,还是文档已经过时了 我正在求助于任何有经验的用户,他们可能会帮助我解决这个问题。我非常感谢你能提供的任何帮助Node.js Discord Webhooks通道返回未定义,node.js,discord,webhooks,channels,Node.js,Discord,Webhooks,Channels,我刚开始使用Webhook,我仔细阅读了discord文档,以帮助我建立一个非常基本的机器人。在这一点上,我想做的就是让机器人上线,并使用webhook发布帖子。我甚至直接从Discord Webhooks文档中复制了基本代码,但我无法实现 使用一些控制台日志,我确定client.channels.cache.get(config.webhookID);返回未定义的,因此channel.fetchWebhooks()不是函数。这仍然是获取频道中的Webhook的方法,还是文档已经过时了 我正在求
const Discord = require('discord.js');
const config = require('./config.json');
const client = new Discord.Client();
const embed = new Discord.MessageEmbed()
.setTitle('Some Title')
.setColor('#0099ff');
client.once('ready', async () => {
const channel = client.channels.cache.get(config.webhookID); //This is the problem.
try {
const webhooks = await channel.fetchWebhooks(); //This will not execute because channel is undefined.
const webhook = webhooks.first();
await webhook.send('Webhook test', {
username: 'some-username',
avatarURL: 'https://i.imgur.com/wSTFkRM.png',
embeds: [embed],
});
} catch (error) {
console.error('Error trying to send: ', error);
}
});
client.login(config.token);
控制台中的错误如下:
Error trying to send: TypeError: Cannot read property 'fetchWebhooks' of undefined
at Client.<anonymous> (C:\Users\me\OneDrive\Desktop\Discord Bot\index.js:13:34)
at Object.onceWrapper (events.js:421:28)
at Client.emit (events.js:315:20)
at WebSocketManager.triggerClientReady (C:\Users\me\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:433:17)
at WebSocketManager.checkShardsReady (C:\Users\me\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:417:10) at WebSocketShard.<anonymous> (C:\Users\me\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:199:14)
at WebSocketShard.emit (events.js:315:20)
at WebSocketShard.checkReady (C:\Users\me\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:467:12)
at WebSocketShard.onPacket (C:\Users\me\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:439:16)
at WebSocketShard.onMessage (C:\Users\me\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
尝试发送时出错:TypeError:无法读取未定义的属性“fetchWebhooks”
在客户端。(C:\Users\me\OneDrive\Desktop\Discord Bot\index.js:13:34)
在Object.onceWrapper(events.js:421:28)
在Client.emit(events.js:315:20)
在WebSocketManager.TriggerClientrady(C:\Users\me\OneDrive\Desktop\Discord Bot\node\u modules\Discord.js\src\client\websocket\WebSocketManager.js:433:17)
在WebSocketManager.checkShardsReady(C:\Users\me\OneDrive\Desktop\Discord Bot\node\u modules\Discord.js\src\client\websocket\WebSocketManager.js:417:10)在WebSocketShard。(C:\Users\me\OneDrive\Desktop\Discord Bot\node\u modules\Discord.js\src\client\websocket\WebSocketManager.js:199:14)
在WebSocketShard.emit(events.js:315:20)
在WebSocketShard.checkReady(C:\Users\me\OneDrive\Desktop\Discord Bot\node\u modules\Discord.js\src\client\websocket\WebSocketShard.js:467:12)
在WebSocketShard.onPacket(C:\Users\me\OneDrive\Desktop\Discord Bot\node\u modules\Discord.js\src\client\websocket\WebSocketShard.js:439:16)
在WebSocketShard.onMessage(C:\Users\me\OneDrive\Desktop\Discord Bot\node\u modules\Discord.js\src\client\websocket\WebSocketShard.js:293:10)
我找到了答案。当我应该使用字段“channel_id”时,我正在使用字段“id”。是否
config.webhookID
有效?你查过了吗???@Saeed,我想是的。我会做一个新的webhook后,这是解决了,所以我可以张贴在这里。我正在使用链接的“703706406125174825”部分。删除缓存
并使用客户端通道获取它。获取
@Saeed,它不是一个函数。我相信cache.get()是在discord.js v12中添加的,您是否检查了这个问题?