javascript - 如何在 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,但这并没有真正的帮助。
解决方案
我制作了一个额外的机器人,它通过输入命令来检查公会角色;D
推荐阅读
- reactjs - React-Router 翻译路线的最佳方式?
- laravel - Laravel - 从记录中删除除名称之外的所有属性
- php - Codeigniter force_download() 不适用于 PDF 扩展
- erlang - 意外的 ':infinity' 参数出现在 Elixir 项目中对 ':odbc.sql_query/2' 的调用中
- java - 将选定的单选按钮文本作为字符串
- javascript - 谷歌浏览器不加载analytics.js
- .net - 您如何在 Opendege 中枚举 .getGroups() ?
- c++ - C++:outFile 错误:outFile 未声明?
- postgresql - 如何更改表(postgres) - 添加新列
- php - 如何按父 ID magento 2 在管理网格中显示项目