Канал Discord Webhooks возвращает неопределенное значение - PullRequest
1 голос
/ 26 апреля 2020

Я новичок в использовании веб-хуков, и я изучил документацию по разногласиям, чтобы помочь мне настроить очень простого c бота. На данный момент все, что я хочу сделать, - это чтобы бот вышел в сеть и использовал веб-крючок для создания сообщения. Я даже напрямую скопировал базовый c код из документации Discord Webhooks и не могу заставить его работать.

Используя некоторые журналы консоли, я определил, что client.channels.cache.get (config. webhookID); возвращает неопределенное значение и поэтому channel.fetchWebhooks () не является функцией. Это все еще способ получить веб-хуки, которые есть в канале, или документация?

Я обращаюсь к любому опытному пользователю, который потенциально может помочь мне с этой проблемой. Я был бы очень признателен за любую помощь, которую вы можете предоставить.

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)

1 Ответ

1 голос
/ 26 апреля 2020

Я разобрался с ответом. Я использовал поле «id», когда я должен был использовать поле «channel_id».

...