Discord Oauth2 加入公会
Discord Oauth2 Join Guild
const guildMembersResponse = fetch(`http://discordapp.com/api/guilds/440494010595803136/members/278628366213709824`,
{
method: 'PUT',
headers: {
Authorization: `Bearer TOKEN`,
},
});
setTimeout(() => {
console.log(guildMembersResponse)
}, 500);
我想使用他在 nodejs 中的用户 ID 和令牌将用户加入我的 Discord 服务器,但是如果我请求 Dicord api 我收到错误消息:
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] } } }
I am using the node-fetch library!
401 错误意味着您没有为 oauth link 提供正确的范围。在 https://discordapp.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes 阅读更多关于 Discord 的 OAuth 范围的信息。引用文档,您需要 guilds.join
范围。
此外,文档引用:
guilds.join
and bot
require you to have a bot account linked to your application. Also, in order to add a user to a guild, your bot has to already belong to that guild.
因此请确保您的应用满足上述要求。
如果您确定已按照上述步骤操作,但仍然无法正常工作,则必须与我们共享 OAuth link 以帮助您进一步调查
我只需要将 headers 中的“ContentType”替换为“Content-Type”!
headers: {
"Authorization": "Bot [botToken]",
"Content-Type": "application/json",
}
您应该将用户令牌添加到正文中,
像这样:
{
method: 'PUT',
access_token: "Bearer TOKEN"
headers: {
Authorization: `Bot TOKEN`,
}
用户令牌应该是这样的:TiaRZjWv5YAp80MpTFRkhi1GhXqddB
我为让它工作所做的一件事是使用 Discord 的 REST。不幸的是,这份文件准备得非常差。
const { REST } = require('@discordjs/rest');
const rest = new REST({ version: '10' }).setToken('TOKEN');
rest.put(`/guilds/${guildID}/members/${userID}`, {
body: {
'access_token': accessToken
}
})
const guildMembersResponse = fetch(`http://discordapp.com/api/guilds/440494010595803136/members/278628366213709824`,
{
method: 'PUT',
headers: {
Authorization: `Bearer TOKEN`,
},
});
setTimeout(() => {
console.log(guildMembersResponse)
}, 500);
我想使用他在 nodejs 中的用户 ID 和令牌将用户加入我的 Discord 服务器,但是如果我请求 Dicord api 我收到错误消息:
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] } } }
I am using the node-fetch library!
401 错误意味着您没有为 oauth link 提供正确的范围。在 https://discordapp.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes 阅读更多关于 Discord 的 OAuth 范围的信息。引用文档,您需要 guilds.join
范围。
此外,文档引用:
guilds.join
andbot
require you to have a bot account linked to your application. Also, in order to add a user to a guild, your bot has to already belong to that guild.
因此请确保您的应用满足上述要求。
如果您确定已按照上述步骤操作,但仍然无法正常工作,则必须与我们共享 OAuth link 以帮助您进一步调查
我只需要将 headers 中的“ContentType”替换为“Content-Type”!
headers: {
"Authorization": "Bot [botToken]",
"Content-Type": "application/json",
}
您应该将用户令牌添加到正文中, 像这样:
{
method: 'PUT',
access_token: "Bearer TOKEN"
headers: {
Authorization: `Bot TOKEN`,
}
用户令牌应该是这样的:TiaRZjWv5YAp80MpTFRkhi1GhXqddB
我为让它工作所做的一件事是使用 Discord 的 REST。不幸的是,这份文件准备得非常差。
const { REST } = require('@discordjs/rest');
const rest = new REST({ version: '10' }).setToken('TOKEN');
rest.put(`/guilds/${guildID}/members/${userID}`, {
body: {
'access_token': accessToken
}
})