#node.js #discord #fetch #discord.js #http-status-code-400
#node.js #Discord #выборка #discord.js #http-status-code-400
Вопрос:
Я пытаюсь создать процесс входа в систему с помощью Discord API. Согласно документации, я предполагаю использовать code
возвращаемый URL-адрес обратного вызова, чтобы выполнить другой вызов для получения токена доступа. Я следовал инструкциям здесь. Тем не менее, я продолжаю получать 400
сообщение об ошибке при выполнении вызова.
Любая помощь в том, что мне нужно исправить?
let options = {
method: 'POST',
headers: {
'Authorization': 'Basic ' discordInfo.client_id ":" discordInfo.client_secret,
'Content-Type': 'application/x-www-form-urlencoded'
},
data: {
'client_id': discordInfo.client_id,
'client_secret': discordInfo.client_secret,
'grant_type': 'authorization_code',
'code': req.query.code,
'redirect_uri': discordInfo.callbackUrl,
'scope': 'identify email'
}
}
let discord_data = await fetch('https://discord.com/api/oauth2/token', options).then((response) => {
if (response.status >= 400) {
throw new Error("Bad response from server");
}
return response.json();
}).then((response) => {
console.log('Discord Response', response);
}).catch((error) => {
console.log(error);
});
Ответ №1:
После дальнейших исследований я обнаружил следующее видео, которое помогло мне.
Вот рабочий код:
let options = {
url: 'https://discord.com/api/oauth2/token',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({
'client_id': discordInfo.client_id,
'client_secret': discordInfo.client_secret,
'grant_type': 'client_credentials',
'code': req.query.code,
'redirect_uri': discordInfo.callbackUrl,
'scope': 'identify email'
})
}
let discord_data = await fetch('https://discord.com/api/oauth2/token', options).then((response) => {
return response.json();
}).then((response) => {
return response;
});