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

Discord.js V13 interactionCreate中获取服务器成员缓存仅显示本人和机器人

问题原因
  • 未开启GuildMembers特权网关意图
    Discord API v10及discord.js v13以上版本对成员数据做了权限限制,获取服务器全量成员属于敏感操作,需要你在Discord开发者平台的机器人配置页手动开启服务器成员特权网关意图。未开启该意图时,网关只会向机器人推送与机器人产生过直接交互的成员数据,因此本地缓存仅会保留你和机器人自身的信息。
  • 未主动拉取全量成员数据
    即使开启了对应意图,机器人默认不会主动拉取服务器全量成员到本地缓存,直接访问interaction.guild.members.cache只能拿到已经触发过相关事件、被临时缓存的成员,无法拿到全量列表。
修复步骤
  1. 进入Discord开发者平台,找到对应机器人的设置页,在「Privileged Gateway Intents」分类下开启Server Members Intent开关
  2. 修改代码,先拉取全量成员再遍历:
bot.on('interactionCreate', async interaction => {
  // 主动拉取服务器所有成员,覆盖本地缓存不全的问题
  const allMembers = await interaction.guild.members.fetch();
  allMembers.forEach(m => {
    console.log(m.user.username)
  });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:36:03