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

Discord.js机器人无法检测用户角色赋予问题求助

问题解决:Discord.js 机器人无法检测角色更新事件

你的guildMemberUpdate事件不触发的核心原因是缺少GuildMembers网关意图,且该意图属于Discord的特权网关意图,需要同时在代码和开发者后台配置才能生效。

1. 补充代码中的网关意图

修改客户端初始化代码,在intents数组中添加GatewayIntentBits.GuildMembers:

const client = new Client({
  intents: [
    GatewayIntentBits.DirectMessages,
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildBans,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent,
    GatewayIntentBits.GuildMembers, // 新增此意图
  ],
  partials: [Partials.Channel],
});

2. 在Discord开发者后台开启特权意图

  1. 打开Discord开发者后台,进入你的机器人应用页面
  2. 切换到「Bot」标签页
  3. 下滑找到「Privileged Gateway Intents」区域,开启「Server Members Intent」选项
  4. 保存更改

额外验证点

  • 确保机器人在目标服务器中拥有「查看服务器成员」的权限(默认角色已包含该权限,若手动修改过角色权限需确认)
  • 重启机器人,让新的意图配置生效

原因说明

guildMemberUpdate事件的推送依赖GuildMembers网关意图,没有该意图时Discord网关不会向机器人发送成员角色变更的事件数据。而该意图属于特权意图,必须在开发者后台手动开启,仅在代码中添加无法生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:22:35