首页 > 解决方案 > 如何在 dc oAuth2 中获得不和谐服务器的角色?

问题描述

我想进行 Discord 登录,但想检查他是否在我的服务器中,所以我想使用 oAuth2 代码等进行 API 调用。
这是请求代码:

    getGuildsRole(code, userId, guildId) {
        return new Promise(async (resolve, reject) => {
            console.clear();
            const options = {
                method: 'POST'
            };
            let params = new URLSearchParams();
            params.append('client_id', this.config.client_id);
            params.append('client_secret', this.config.client_secret);
            params.append('code', code);
            params.append('grant_type', 'authorization_code');
            params.append('scope', 'identify');
            params.append('redirect_uri', this.config.callback_url);
            options.body = params;
            await fetch('https://discordapp.com/api/oauth2/token', options)
                .then(async response => {
                    let x = await response.json();
                    var user
                    await fetch('https://discordapp.com/api/v7/guilds/' + guildId + '/members/' + userId, {
                        headers: {
                            'Authorization': `Bearer ${x.access_token}`
                        }
                    }).then(async res => {
                        user = await res.json();
                        resolve(user);
                    }).catch(err => {
                        reject(err);
                    });
                })
                .catch(error => {
                    reject(error);
                });
        });
    }

机器人权限是:Identify、E-Mail、Guilds。
而且我认为使用 Guilds 可以获得角色等,但我不能扔掉 Discord 的 API,但这并没有真正的帮助。

标签: javascriptapioauth-2.0discord

解决方案


我制作了一个额外的机器人,它通过输入命令来检查公会角色;D


推荐阅读