Discord API возвращает 401 для всех запросов с бот-токеном - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь отправлять запросы в разрозненный веб-API, но продолжаю получать код ответа 401. Почти все ответы, которые я могу найти в Интернете, получены от людей, которые использовали токен на предъявителя вместо токена бота, и переход на токен бот работал. Я использую токен бота и все еще получаю 401. Однако я знаю, что этот токен бота действителен, потому что попытка запустить node bot.js с недопустимым токеном выдает ошибку и не запускает бота. Мой код сейчас просто

const Discord = require('discord.js');
const client = new Discord.Client();
const auth = require('./auth.json');
const axios = require('axios');
const headers = {
    'Authorization': `Bot ${auth.token}`
};

client.on('ready', () => {
    console.log(`Logged in as ${client.user.tag}!`);
});

client.on('message', msg => {

    /* If the author is a bot, do nothing */
    if (msg.author.bot) {
        return;
    }

    /* Only perform an action if the first character is ? */
    if (msg.content.substring(0, 1) == '?' && msg.content.length > 1) {
        var message = msg.content.substring(1).toLowerCase();

        //console.log(message);
        //console.log(msg);
        //console.log(msg.channel.name);

        switch (message) {
            case 'gos':

                axios.get(`https://discordapp.com/api/channels/${msg.channel.id}/messages`, headers)
                .then(response => {
                    console.log(response);
                }).catch(err => {
                    console.log(err);
                });


                break;
            case 'dolphin':
                msg.reply('dolphin', {files: [
                    "https://www.dolphinproject.com/wp-content/uploads/2019/07/Maya-870x580.jpg"
                ]});
                break;
        }

    }
});

client.login(auth.token);

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

1 Ответ

1 голос
/ 25 октября 2019

Как я понял из вашего вопроса, вы получаете такой же ответ от почтальона (401 Unauthorized), поэтому единственная причина этого в том, что токен доступа недействителен или у вас нет разрешения на такой вызов APIили канал от раздора.

Еще одна вещь, которую вы должны увидеть, - это способ отправки заголовков в axios, здесь я могу поделиться с вами правильным способом отправки заголовков: Как установить заголовок и параметры в axios?

Также убедитесь, что «auth.json» имеет токен правильно, как вы его называете (auth.token).

...