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

Discord.js v12.5.3邀请日志报错Cannot read property 'fetch' of undefined如何解决

问题根因

你使用的Discord.js v12.5.3版本不支持guild.invites.fetch()写法,该API是v13及以上版本新增的调用方式,v12版本获取服务器邀请列表的原生方法为guild.fetchInvites(),你的代码调用了不存在的guild.invites属性,所以会抛出无法读取undefined的fetch属性的错误。

修复方案

替换代码中两处调用邀请列表的逻辑即可:

  1. 替换ready事件中的邀请拉取逻辑
  2. 替换guildMemberAdd事件中的邀请拉取逻辑

修改后的完整可运行代码如下:

const invites = new Map();
const wait = require("timers/promises").setTimeout;

client.on("ready", async() => {
  await wait(1000);

  client.guilds.cache.forEach(async(guild) => {
    // 修改处:v12版本使用guild.fetchInvites()拉取邀请列表
    const firstInvites = await guild.fetchInvites();
    invites.set(guild.id, new Map(firstInvites.map((invite) => [invite.code, invite.uses])));
  });
});

client.on("inviteDelete", (invite) => {
  invites.get(invite.guild.id).delete(invite.code);
});

client.on("inviteCreate", (invite) => {
  invites.get(invite.guild.id).set(invite.code, invite.uses);
});

client.on("guildMemberAdd", member => {
  // 修改处:v12版本使用guild.fetchInvites()拉取邀请列表
  member.guild.fetchInvites().then(newInvites => {
    const oldInvites = invites.get(member.guild.id);
    const invite = newInvites.find(i => i.uses > oldInvites.get(i.code));
    const inviter = client.users.cache.get(invite.inviter.id);
    const logChannel = member.guild.channels.cache.find(channel => channel.name === "bot-testing");
    inviter
      ?
      logChannel.send(`${member.user.tag} joined using invite code ${invite.code} from ${inviter.tag}. Invite was used ${invite.uses} times since its creation.`) :
      logChannel.send(`${member.user.tag} joined but I couldn't find through which invite.`);
  });
});
额外注意事项
  • 初始化Client实例时需要开启对应网关意图,否则无法接收邀请相关事件和成员加入事件,示例初始化配置:
const Discord = require('discord.js');
const client = new Discord.Client({
  ws: {
    intents: ['GUILDS', 'GUILD_INVITES', 'GUILD_MEMBERS']
  }
});
  • 你需要前往Discord开发者后台的Bot管理页面,开启Server Members Intent权限开关,否则无法接收成员加入事件。
  • 确认Bot在对应服务器拥有管理邀请(Manage Invites)权限,否则无法拉取服务器邀请列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:06:01