最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Get roles of current user in Discord server - Stack Overflow

programmeradmin2浏览0评论

I'm trying to get the roles of the current user in a specific chat room using Discord's API (using an access_token). I've had a fair look through the docs and can't see how to do this. For example, doing a get request to /@me gives the basic user info as expected. I then tried something along the lines of the following without any luck:

/@me/guilds/${guild.id}/roles

Here's a snippet of the code I'm using:

               ....get access token then

                .then(info => {
                    console.log(info)
                    fetch(`/@me`, {
                        headers: {
                            authorization: `${info.token_type} ${info.access_token}`,
                        },
                    }).then(response => response.json())
                        .then(info => {
                            console.log(info)
                        })
                })

Any ideas?

To clarify, the user logs in with discord and my application receives a user access token which I'm then trying to use to get the roles of the user in a specific discord room.

I'm trying to get the roles of the current user in a specific chat room using Discord's API (using an access_token). I've had a fair look through the docs and can't see how to do this. For example, doing a get request to https://discordapp./api/users/@me gives the basic user info as expected. I then tried something along the lines of the following without any luck:

https://discordapp./api/users/@me/guilds/${guild.id}/roles

Here's a snippet of the code I'm using:

               ....get access token then

                .then(info => {
                    console.log(info)
                    fetch(`https://discordapp./api/users/@me`, {
                        headers: {
                            authorization: `${info.token_type} ${info.access_token}`,
                        },
                    }).then(response => response.json())
                        .then(info => {
                            console.log(info)
                        })
                })

Any ideas?

To clarify, the user logs in with discord and my application receives a user access token which I'm then trying to use to get the roles of the user in a specific discord room.

Share Improve this question edited Apr 8 at 6:20 VLAZ 29.1k9 gold badges63 silver badges84 bronze badges asked Aug 3, 2020 at 18:23 HaveAGitGatHaveAGitGat 691 gold badge1 silver badge10 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 2

There is

GET /users/@me/guilds/{guild.id}/member

Which will get you a JSON object containing

{
  "avatar": null,
  "munication_disabled_until": null,
  "flags": 0,
  "is_pending": null,
  "joined_at": "2023-01-11T23:12:34.423000+00:00",
  "nick": null,
  "pending": null,
  "premium_since": null,
  "roles": [
    2888141278217623600,
    5904405471246944000
  ],
  "user": {
    "id": 8285334657500223000,
    "username": "your-name",
    "display_name": null,
    "avatar": null,
    "avatar_decoration": null,
    "discriminator": 4041,
    "public_flags": 0
  },
  "mute": null,
  "deaf": null
}

To use this with OAuth2, you must request the guilds.members.read OAuth2 scope, which is the one that Discord prompts users for their permissions with

Read your member info (nickname, avatar, roles, etc...) for servers you belong to

This was added in sometime in late 2021, judging from this PR.

From the documentation you can do this using the endpoint:

GET /guilds/{guild.id}/members/{user.id}

This will return a guild member object that contains the roles of this user.

Example guild member object:

{
  "user": {},
  "nick": "",
  "roles": [],
  "joined_at": "",
  "deaf": false,
  "mute": false
}
发布评论

评论列表(0)

  1. 暂无评论