Discord Oauth2加入公会

时间:2018-12-28 17:31:02

标签: node.js express oauth-2.0 discord node-fetch

const guildMembersResponse = fetch(`http://discordapp.com/api/guilds/440494010595803136/members/278628366213709824`,
            {
              method: 'PUT',
              headers: {
                Authorization: `Bearer TOKEN`,
              },
            });
            setTimeout(() => {
                console.log(guildMembersResponse)
            }, 500);

我想使用用户ID和令牌在Node.js中将用户加入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] } } }
  

我正在使用node-fetch库!

3 个答案:

答案 0 :(得分:0)

401错误将表示您没有为oauth链接提供正确的作用域。在https://discordapp.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes上详细了解Discord的OAuth范围。引用文档,您将需要guilds.join范围。

此外,文档引用:

  

guilds.joinbot要求您拥有一个与您的应用程序关联的机器人帐户。另外,为了将用户添加到公会,您的漫游器必须已经属于该公会。

因此请确保您的应用满足上述要求。

如果您确定已遵循上述步骤,但仍然无法正常运行,则必须与我们共享OAuth链接以帮助您进行进一步调查

答案 1 :(得分:0)

我只需要将ContentType替换为“ Content-Type”

headers: {
  "Authorization": "Bot [botToken]",
  "Content-Type": "application/json",

},

答案 2 :(得分:0)

您应该将用户令牌添加到正文中, 像这样:

DT[, crop := rowid(ID)]

用户令牌应该是这样的:TiaRZjWv5YAp80MpTFRkhi1GhXqddB