代码之家  ›  专栏  ›  技术社区  ›  Józef Podlecki

不一致net服务器响应错误50001:缺少访问权限

  •  0
  • Józef Podlecki  · 技术社区  · 3 年前

    我想在discord guild中检索用户,但我收到了一条神秘消息错误。

    The server responded with error 50001: Missing Access
    

    bot具有 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 Developer Portal-OAuth2配置下的作用域和bot权限

    enter image description here

    我用来邀请bot到服务器的链接。

    https://discord.com/oauth2/authorize?client_id=<>&permissions=8&scope=applications.commands%20bot
    
    0 回复  |  直到 3 年前
        1
  •  3
  •   Slate    3 年前

    很高兴OP已经解决了他们的问题;我来自一个搜索,通过确保我的机器人邀请链接 &scope=bot%20applications.commands 最后,还有“使用斜杠命令”权限(或者让你的机器人成为管理员)。

    Bot的邀请链接位于OAuth中>Discord开发人员门户中的URL生成器-- https://discord.com/developers/applications/<your_app_id>/oauth2/url-generator

    此外,确保Bot菜单中的REQUIRES OAUTH2 CODE GRANT选项处于关闭状态,否则您将从OAuth invite获得“Bot REQUIRES a CODE GRANT”响应。

        2
  •  0
  •   Józef Podlecki    3 年前

    显然,必须切换服务器成员意图才能查看公会成员。

    developer portal bot