node.jsdiscordunirest

Discord rest API: Kick members from guild


I'm trying to use the Discord Rest API and the "unirest" module with node.js to kick members from my server:

const unirest = require('unirest');

const guildId = "xyz";
const botSecret = "xyz";
const memberId = "xyz"

var request = 'https://discord.com/api/v8//guilds/' + guildId + '/members/' + memberId;

unirest.delete(request).send({"botToken": botSecret}).then((response) => {
    console.log(response.body);
}).catch(error =>{
    console.log(error);
})

However, I get a 401: Unauthorized response. The bot I'm using has the administrator role, so it is allowed to kick members from the guild.

I think that I'm making some mistakes in the request.


Solution

  • A 401 indicates you have not properly sent your authentication credentials.

    If we look at the documentation for Discord Authentication we can see that they expect the bot token in the Authorization header instead of in the request like you have done.

    We aren't using basic auth so we need to write the header manually.

    unirest.delete(request)
      .header('Authorization', 'Bot ' + botSecret)
      ...