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

Discord OAuth2 如何获取指定服务器内当前用户的身份组信息

实现方案

可以实现该需求,具体操作步骤如下:

1. 确认OAuth2授权Scope配置

你之前调用接口拿不到身份组数据,核心原因是授权时没有申请对应的权限范围。必须在OAuth2授权链接中加入guilds.members.read scope,同时保留已有的identify、guilds scope。如果之前的授权没有包含该scope,需要重新走OAuth授权流程让用户重新授权,否则无法获取成员身份组信息。

2. 调用正确的API接口

不要使用/users/@me/guilds接口,该接口设计上仅返回用户所属服务器的基础公共信息,不包含用户在服务器内的角色数据。需要调用指定服务器的成员查询接口:

GET https://discord.com/api/v10/guilds/{替换为你的目标服务器ID}/members/{替换为目标用户ID}

其中目标用户ID可以通过你之前调用的/users/@me接口返回的id字段获取,请求头必须携带用户的access_token,格式如下:
Authorization: Bearer <用户的access_token>

如果你仍需要使用v6版本API,将路径中的v10替换为v6即可,不过更推荐使用新版API,旧版已停止官方维护。

3. 解析返回结果

该接口返回的成员对象中,roles字段即为用户在当前服务器的身份组ID数组。如果需要获取身份组的名称、权限、颜色等元信息,可以提前在你的服务端通过Discord Bot的token调用/guilds/{目标服务器ID}/roles接口拉取全量身份组映射,不要将Bot token暴露在Chrome扩展前端,避免token泄露。

注意事项

  • 调用接口前先通过/users/@me/guilds接口确认目标用户确实在你指定的服务器内,否则成员查询接口会返回404错误
  • 遵守Discord API的速率限制规则,不要高频调用接口
  • 所有需要使用Bot权限的操作都必须放到你的后端服务处理,禁止在前端扩展代码中硬编码任何Bot凭证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:54:03