discord.net 服务器响应错误 50001:缺少访问权限
discord.net The server responded with error 50001: Missing Access
我想检索 discord guild 中的用户,但我收到一条带有神秘消息的错误。
The server responded with error 50001: Missing Access
机器人有 Administrator
权限,这就是它在 Server settings > Roles > Permissions
中的说明
也许需要在配置中勾选其他内容。
你的想法?
感谢您的帮助。
代码
class Program
{
private static IDiscordClient _client;
private static bool _isRunning = false;
private static Timer _timer;
static async Task Main(string[] args)
{
AppDomain.CurrentDomain.ProcessExit += new EventHandler(ProcessExit);
var client = new DiscordSocketClient(new DiscordSocketConfig()
{
AlwaysDownloadUsers = true,
MessageCacheSize = 200,
});
var botToken = "...";
await client.LoginAsync(TokenType.Bot, botToken);
await client.StartAsync();
client.Ready += Ready;
_client = client;
await Task.Delay(Timeout.InfiniteTimeSpan);
}
private static async Task Ready()
{
_timer = new Timer(GetUsers, null, TimeSpan.Zero, TimeSpan.FromSeconds(10));
}
private static async void GetUsers(object state)
{
if (_isRunning)
{
return;
}
_isRunning = true;
try
{
var guilds = await _client.GetGuildsAsync();
var guild = guilds.First();
var users = await guild.GetUsersAsync();
Console.WriteLine(users.Count);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
_isRunning = false;
}
static void ProcessExit(object sender, EventArgs e)
{
(_client as DiscordSocketClient).LogoutAsync().GetAwaiter().GetResult();
}
}
Discord 开发者门户 - OAuth2 配置下的范围和机器人权限
Link 我曾经邀请机器人加入服务器。
https://discord.com/oauth2/authorize?client_id=<>&permissions=8&scope=applications.commands%20bot
显然必须切换服务器成员意图才能看到公会成员。
很高兴 OP 已经解决了他们的问题;我来自搜索并通过确保我的机器人邀请 link 最后有 &scope=bot%20applications.commands
以及“使用斜杠命令”权限(或者让你的机器人成为管理员)来解决它。
机器人的邀请 link 在 OAuth > URL Discord 开发者门户中的生成器中 -- https://discord.com/developers/applications/<your_app_id>/oauth2/url-generator
另外,确保 Bot 菜单中的 REQUIRES OAUTH2 CODE GRANT 选项已关闭,否则您会从 OAuth 邀请中收到“Bot 需要代码授权”的响应。
我想检索 discord guild 中的用户,但我收到一条带有神秘消息的错误。
The server responded with error 50001: Missing Access
机器人有 Administrator
权限,这就是它在 Server settings > Roles > Permissions
也许需要在配置中勾选其他内容。
你的想法?
感谢您的帮助。
代码
class Program
{
private static IDiscordClient _client;
private static bool _isRunning = false;
private static Timer _timer;
static async Task Main(string[] args)
{
AppDomain.CurrentDomain.ProcessExit += new EventHandler(ProcessExit);
var client = new DiscordSocketClient(new DiscordSocketConfig()
{
AlwaysDownloadUsers = true,
MessageCacheSize = 200,
});
var botToken = "...";
await client.LoginAsync(TokenType.Bot, botToken);
await client.StartAsync();
client.Ready += Ready;
_client = client;
await Task.Delay(Timeout.InfiniteTimeSpan);
}
private static async Task Ready()
{
_timer = new Timer(GetUsers, null, TimeSpan.Zero, TimeSpan.FromSeconds(10));
}
private static async void GetUsers(object state)
{
if (_isRunning)
{
return;
}
_isRunning = true;
try
{
var guilds = await _client.GetGuildsAsync();
var guild = guilds.First();
var users = await guild.GetUsersAsync();
Console.WriteLine(users.Count);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
_isRunning = false;
}
static void ProcessExit(object sender, EventArgs e)
{
(_client as DiscordSocketClient).LogoutAsync().GetAwaiter().GetResult();
}
}
Discord 开发者门户 - OAuth2 配置下的范围和机器人权限
Link 我曾经邀请机器人加入服务器。
https://discord.com/oauth2/authorize?client_id=<>&permissions=8&scope=applications.commands%20bot
显然必须切换服务器成员意图才能看到公会成员。
很高兴 OP 已经解决了他们的问题;我来自搜索并通过确保我的机器人邀请 link 最后有 &scope=bot%20applications.commands
以及“使用斜杠命令”权限(或者让你的机器人成为管理员)来解决它。
机器人的邀请 link 在 OAuth > URL Discord 开发者门户中的生成器中 -- https://discord.com/developers/applications/<your_app_id>/oauth2/url-generator
另外,确保 Bot 菜单中的 REQUIRES OAUTH2 CODE GRANT 选项已关闭,否则您会从 OAuth 邀请中收到“Bot 需要代码授权”的响应。