You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Discord机器人无响应求助:无法读取聊天消息

问题诊断与修复方案

1. 事件注册顺序错误

你代码里先执行了登录和客户端启动操作,之后才绑定MessageReceived事件。这会导致客户端启动后触发的消息事件无法被监听——事件绑定必须在客户端启动前完成。

2. 缺失Gateway Intents配置

Discord API现在要求明确声明网关意图(Intents)才能读取消息内容。默认配置未启用消息相关意图,这是message.Content为空的核心原因。

3. 开发者门户与权限配置

  • 登录Discord开发者门户,进入你的Bot页面,开启Privileged Gateway Intents下的Message Content Intent。
  • 邀请机器人到服务器时,确保链接包含SendMessages和ReadMessageHistory权限(权限参数可设为3072),且机器人在目标频道有对应权限。

4. 可选优化:排除机器人自身消息

添加判断忽略机器人发送的消息,避免无意义的处理逻辑。


修改后的完整代码

using System;
using System.Threading.Tasks;
using Discord;
using Discord.WebSocket;

namespace HiBot
{
    class Program
    {
        private DiscordSocketClient _client;

        static void Main(string[] args)
            => new Program().MainAsync().GetAwaiter().GetResult();

        public async Task MainAsync()
        {
            // 配置所需的网关意图
            var config = new DiscordSocketConfig
            {
                GatewayIntents = GatewayIntents.GuildMessages | GatewayIntents.DirectMessages | GatewayIntents.MessageContent
            };
            
            _client = new DiscordSocketClient(config);

            // 先注册事件,再启动客户端
            _client.Log += Log;
            _client.MessageReceived += MessageReceived;

            string token = "iwillnotshowmytokenhere";

            await _client.LoginAsync(TokenType.Bot, token);
            await _client.StartAsync();

            await Task.Delay(-1);
        }

        private Task Log(LogMessage message)
        {
            Console.WriteLine(message.ToString());
            return Task.CompletedTask;
        }

        private async Task MessageReceived(SocketMessage message)
        {
            // 忽略机器人自身消息
            if (message.Author.IsBot) return;
            
            Console.WriteLine($"Your message is: {message.Content}");
            if (message.Content.ToLower().StartsWith("!hi"))
            {
                await message.Channel.SendMessageAsync("Hello!");
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者fast_kars

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:06:33