discord api将用户添加到公会

Posted

技术标签:

【中文标题】discord api将用户添加到公会【英文标题】:discord api add user to guild 【发布时间】:2021-06-03 02:41:16 【问题描述】:

您好,我正在尝试使用 discord api 在用户登录时将其添加到公会。但我得到 401 Unauthorized 我不知道为什么。 这是我的代码:

  const data = new FormData();

  data.append("client_id", CLIENT_ID);
  data.append("client_secret", CLIENT_SECRET);
  data.append("grant_type", "authorization_code");
  data.append("redirect_uri", `http://localhost:3000/callback`);
  data.append("scope", "identify,guilds.join");
  data.append("code", req.query.code);

  var response = await fetch("https://discord.com/api/oauth2/token", 
    method: "POST",
    body: data
  );

  const json = await response.json();

  var resp = await fetch(`https://discord.com/api/guilds/813847215058845708/members/463696108766494730`, 
    method: "PUT",
    headers: 
      "Authorization": `Bot $json.access_token`,
      "Content-Type": "application/json",
    
  );

console.log(resp)

一切似乎都在工作,我可以获取用户头像,姓名等,但无法将他添加到公会,任何人都可以帮助我,plz

【问题讨论】:

该用户是机器人还是人? 这是一个用户,当他们登录我的仪表板时,我正在尝试添加该用户 请不要用discord.js 标记Discord API 问题,它们非常不同 【参考方案1】:

您提供的授权标头无效。您不能使用带有 bot 前缀的访问令牌,因为您正在进行正常的 OAuth2 调用。相反,您需要提供 Discord-API 返回的令牌类型。


改变

headers: 
    "Authorization": `Bot $json.access_token`,
    "Content-Type": "application/json",

headers: 
    authorization: `$json.token_type $json.access_token`


此外,您传递范围的方式似乎也不正确。试试

data.append("scope", "identify guilds guilds.join");

【讨论】:

还是一样 还是一样 @BrunoGod 再次编辑。如果这也不起作用,我没有想法。我刚刚测试过,它对我有用。 是的,同样的事情。我不知道为什么这对我不起作用。我知道这听起来很奇怪,但你能把你的代码发给我吗?

以上是关于discord api将用户添加到公会的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Discord API 返回错误 405 以向公会添加斜杠命令?

获取当前用户公会 Discord

Discord Py - 如何使用文本命令向公会的所有成员添加多个角色

公会加入事件打印机器人被邀请 - Discord.py

Discord OAuth2 从确切的公会获取用户角色

Python Discord OAuth2 - Guild.Join(加入公会)