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

在discord.js中通过ID获取公会返回undefined的问题求助

解决discord.js通过ID获取公会返回undefined的问题

以下是几种常见的排查和解决方法:

  • 确认机器人在目标公会内
    你的机器人必须加入了目标公会,否则guilds.cache中不会存在该公会的记录。检查机器人的服务器列表,确保目标公会在其中。

  • 配置正确的Intents
    discord.js v14及以上版本需要显式启用Guilds Intent才能获取公会数据。创建客户端时务必配置:

    const { Client, GatewayIntentBits } = require('discord.js');
    const client = new Client({
      intents: [GatewayIntentBits.Guilds]
    });
    
  • 等待客户端就绪后再调用
    不要在ready事件触发前执行获取公会的逻辑,此时缓存尚未加载完成。正确的做法是在就绪事件内调用:

    client.on('ready', () => {
      const guild = getGuildById("1033299353445605396");
      console.log(guild);
    });
    
  • 使用fetch方法绕过缓存
    如果缓存中没有目标公会数据,可以直接从Discord API获取:

    async function getGuildById(ID) {
      try {
        return await client.guilds.fetch(ID);
      } catch (err) {
        console.error('获取公会失败:', err);
        return null;
      }
    }
    

    注意该方法是异步的,调用时需要用await或.then()处理返回值。

  • 验证公会ID的准确性
    确保使用的ID是正确的字符串,无多余空格或错误字符。可以开启Discord开发者模式,右键公会图标复制ID来保证正确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:50:38