Discord Oauth2 Вступить в гильдию
const guildMembersResponse = fetch(`http://discordapp.com/api/guilds/440494010595803136/members/278628366213709824`,
{
method: 'PUT',
headers: {
Authorization: `Bearer TOKEN`,
},
});
setTimeout(() => {
console.log(guildMembersResponse)
}, 500);
Я хочу присоединить пользователя к моему серверу Discord с его идентификатором пользователя и его токеном в nodejs, но если я запрашиваю API Dicord, я получаю сообщение об ошибке:
Promise {
Response {
size: 0,
timeout: 0,
[Symbol(Body internals)]: { body: [PassThrough], disturbed: false, error:
null },
[Symbol(Response internals)]:
{ url:
'https://discordapp.com/api/guilds/440494010595803136/members/278628366213709824',
status: 401,
statusText: 'UNAUTHORIZED',
headers: [Headers] } } }
Я использую библиотеку node-fetch!
4 ответа
Я просто должен был заменить ContentType на "Content-Type"
headers: {
"Authorization": "Bot [botToken]",
"Content-Type": "application/json",
},
Вы должны добавить токен пользователя в тело, вот так:
{
method: 'PUT',
access_token: "Bearer TOKEN"
headers: {
Authorization: `Bot TOKEN`,
}
токен пользователя должен быть таким: TiaRZjWv5YAp80MpTFRkhi1GhXqddB
Одна вещь, которую я сделал, чтобы заставить это работать, состояла в том, чтобы использовать REST Дискорда. к сожалению, эта документация очень плохо подготовлена.
const { REST } = require('@discordjs/rest');
const rest = new REST({версия: '10' }).setToken('TOKEN');
rest.put(`/guilds/${guildID}/members/${userID}`, {
body: {
'access_token': accessToken
}
})
Ошибка 401 будет означать, что вы не указали правильную область для ссылки oauth. Подробнее о возможностях OAuth от Discord читайте на https://discordapp.com/developers/docs/topics/oauth2. Цитируя документы, вам понадобится guilds.join
объем.
Более того, цитаты из документов:
guilds.join
а такжеbot
требует, чтобы у вас была учетная запись бота, связанная с вашим приложением. Кроме того, чтобы добавить пользователя в гильдию, ваш бот должен уже принадлежать к этой гильдии.
Поэтому убедитесь, что ваше приложение соответствует вышеуказанным требованиям.
Если вы убедились, что выполнили вышеуказанные действия, и все еще не можете заставить его работать, вам придется поделиться ссылкой OAuth с нами, чтобы помочь вам в дальнейшем расследовании.