You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js新版本下如何通过OAuth2添加成员至服务器

问题:Discord.js更新后OAuth2添加服务器成员的方法问题

我希望通过Discord OAuth2系统将成员添加到服务器,但Discord.js更新后相关方法发生了变化,搜索后未找到解决方案。我的旧代码如下:

await client.api.guilds(guildId).members(client.users.resolveId(interaction.member.id)).put({ data: { access_token: data.access_token, roles: (user?.[0]?.roles == "") ? [] : userRoles } })
.then(async () => {...

其中guildId为Guild.id,access_token是OAuth2生成的访问令牌(旧版本可用),user是从数据库解析的对象。我尝试使用Guild.addMember但失败(提示addMember不是函数)。

编辑:我自己找到答案了……(见下方我的回答)


解决方案

在Discord.js v13及后续版本中,原有的client.api底层调用和Guild.addMember方法已被废弃,需使用GuildMemberManager.add()方法实现OAuth2添加成员的功能。替换后的代码如下:

await guild.members.add(interaction.member.id, {
  accessToken: data.access_token,
  roles: user?.[0]?.roles === "" ? [] : userRoles
});

说明

  • 需确保已获取目标服务器的Guild实例(即代码中的guild)
  • guild.members.add()第一个参数为要添加的用户ID
  • 第二个参数是配置对象,其中accessToken为OAuth2流程中获取的有效访问令牌,roles为要赋予用户的角色ID数组

内容的提问来源于stack exchange,提问作者Kodeur_Kubik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:27:26