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

C#开发Discord机器人:消息内容无法显示及令牌安全性咨询

问题1:无法获取message.Content内容

核心原因:缺少消息内容意图(Message Content Intent)

Discord Gateway API从v9版本开始,要求开发者明确启用Message Content Intent才能读取消息正文。你的代码里没有配置该意图,导致message.Content始终返回空值。

修复步骤:

  1. 修改代码中的客户端配置
    更新DiscordSocketClient的初始化逻辑,添加必要的网关意图:

    var socketConfig = new DiscordSocketConfig
    {
        // 启用服务器、服务器消息、消息内容三类核心意图
        GatewayIntents = GatewayIntents.Guilds | GatewayIntents.GuildMessages | GatewayIntents.MessageContent
    };
    DiscordSocketClient client = new DiscordSocketClient(socketConfig);
    
  2. 在Discord开发者门户开启权限

    • 进入Discord开发者门户,打开你的机器人应用
    • 切换到Bot标签页
    • 在Privileged Gateway Intents区域,开启Message Content Intent
    • 保存设置

额外排查点:

  • 确认机器人在目标服务器拥有查看频道和读取消息历史权限
  • 过滤系统消息(如成员加入通知),这类消息本身没有正文内容,可以通过message.Type != MessageType.Default判断

问题2:只读权限下公开机器人令牌的安全风险

绝对存在严重安全风险,无论权限设置如何,令牌必须严格保密。

哪怕机器人只有读取消息的权限,拿到令牌的攻击者仍能:

  • 以机器人身份读取所有它有权访问的频道内容,包括私密频道
  • 修改机器人的个人资料、在线状态
  • 将机器人加入其他公开可邀请的服务器
  • 调用Discord API获取服务器列表、用户基础信息等敏感数据
  • 长期监听机器人可访问的所有频道,进行信息收集

令牌是机器人的核心身份凭证,等同于账号密码,任何场景下都不能泄露给他人,也不要提交到代码仓库、公开论坛等平台。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:20:05