Discord OAuth2 从确切的公会获取用户角色
Posted
技术标签:
【中文标题】Discord OAuth2 从确切的公会获取用户角色【英文标题】:Discord OAuth2 getting user roles from exact guild 【发布时间】:2021-11-29 18:31:21 【问题描述】:我正在使用 discord OAuth2
进行 chrome 扩展身份验证。我得到用户access_token
并想用它来获取我服务器上实际用户的角色。我尝试使用https://discordapp.com/api/v6/users/@me/
或https://discordapp.com/api/v6/users/@me/guilds
,但它只提供有关用户服务器的信息。我还可以获取有关此用户角色的信息吗?我该怎么做?
【问题讨论】:
不太确定但试试discordapp.com/api/v6/guilds/<guild_id>/members/… @MalikLahlou 我试过但只有401: Unauthorized
,我认为这个是为机器人准备的
你用的是什么示波器?
@NotTrixxie 身份和公会
【参考方案1】:
要获取有关用户所在的公会和用户所在角色的信息,您可能需要查看 Discord 的文档。我不能 100% 确定您是否可以通过 OAuth2
获得有关用户角色的信息,但这是我发现的。
guilds 作用域返回部分公会信息
允许 /users/@me/guilds 返回有关用户所有公会的基本信息
如文档中所说(上面引用),它返回基本信息,这可能不包括用户的角色,但只包括所有公会角色,而不是用户拥有的角色。
"id": "80351110224678912",
"name": "1337 Krew",
"icon": "8342729096ea3675442027381ff50dfe",
"owner": true,
"permissions": "36953089",
"features": ["COMMUNITY", "NEWS"]
不确定guilds
范围是否返回比full guild structure 更多的信息
我建议回显/记录您从该范围获得的信息。
【讨论】:
我就是这样做的,这就是我写这个问题的原因:)【参考方案2】:不确定这是否会有所帮助,但此链接包含有关如何通过 oath2 和请求信息获取公会中的用户列表、搜索用户或获取有关特定用户的更多信息的官方不和谐文档从端点。 Official Discord (get-guild-member)
值得注意的是,我个人使用GET
请求/guilds/guild.id/members
来获取该帐户所属的公会内的用户列表。
我相信这会返回服务器中的角色以及列表,或者如果不包括在内,您可以获取 id 并搜索具有该 id 的用户,或者从@987654324 请求更多信息@ 以获取尽可能多的关于公会内某个用户的 discord 信息。
另外值得注意的是,我遇到了同样的 401:未授权错误。解决此问题的方法是确保您的 discord 应用程序中列出了正确的成员和公会意图。
【讨论】:
【参考方案3】:您可以通过/users/@me/guilds/guild.id/member API 使用guilds.members.read
范围和OAuth2
访问角色ids,但不要认为您可以获得实际的角色对象。我想我可以打电话给/guilds/guild.id/roles 来获取角色列表并解析id,但是这个thread 表明它只对机器人可用,而不是OAuth2
。
编辑:
在我忙于弄清楚如何解析 role_ids 时,我发现您可以在 Discord Message 输入表单中使用快捷方式 <@&[role_id]>
来找出 role_id 实际指的角色的名称。
【讨论】:
/users/@me/guilds/guild.id/member - 这对我来说非常有效。谢谢!以上是关于Discord OAuth2 从确切的公会获取用户角色的主要内容,如果未能解决你的问题,请参考以下文章