Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
362 views
in Technique[技术] by (71.8m points)

node.js - 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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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)
  ...

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...