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

Discord.js V13 如何获取指定服务器的所有成员?

Discord.js v13 服务器成员列表获取调整方案

前置配置要求

Discord.js v13 开始强制要求网关意图配置,获取成员列表前需要完成两项配置:

  • 登录Discord开发者后台,进入对应Bot应用的设置页,在「Privileged Gateway Intents」板块开启Server Members Intent开关
  • 初始化Bot客户端时明确声明GUILD_MEMBERS意图,示例初始化代码如下:
const { Client, Intents } = require('discord.js');
const bot = new Client({
  intents: [
    Intents.FLAGS.GUILDS, // 基础服务器意图为必选项
    Intents.FLAGS.GUILD_MEMBERS, // 成员拉取专属意图
    // 其他业务所需意图可自行补充
  ]
});

调整后可运行代码

// 直接用get方法按ID获取服务器,比find效率更高
const guild = bot.guilds.cache.get(id);
if (!guild) return console.log('未找到对应ID的服务器');

guild.members.fetch()
  .then(members => {
    members.forEach(member => console.log(member.user.username));
    console.log(`本次共拉取到 ${members.size} 名成员`);
  })
  .catch(err => console.error('成员拉取失败:', err));

注意事项

  • 若目标服务器成员数超过1000,guild.members.fetch()会自动完成分页拉取,无需手动处理分页逻辑
  • 需确保Bot在目标服务器内拥有View Server Insights或Manage Members权限,否则无法拉取完整的成员列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:54:03