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

discord.js的bot.on('ready')回调内获取频道ID及cache报错如何解决

问题解决方案

错误原因

报错核心是属性名拼写错误:discord.js 中客户端实例的频道集合属性为复数形式 bot.channels,你代码中使用的单数 bot.channel 是不存在的属性,取值为 undefined,因此访问其cache属性时触发报错。

修正后的代码

bot.on('ready', () => {
   console.log(`${bot.user.tag} successfully logged in!`)
   bot.user.setActivity('%help', {type: "LISTENING"})
   function sendTimedMessage() {
      // 直接用get方法按ID查询频道,比find遍历效率更高
      const channel = bot.channels.cache.get('替换为你实际的频道ID');
      if (!channel) return;
      channel.send('替换为你要发送的消息内容');
   }
   // 时间单位为毫秒,1000即1秒,频繁发送容易触发Discord风控,建议调大间隔
   setInterval(sendTimedMessage, 5000);
})

额外注意事项

  • 注意替换代码中的替换为你实际的频道ID、替换为你要发送的消息内容为实际值
  • 若频道仍获取失败,请确认bot已经加入对应频道所在的服务器,且拥有该频道的「查看频道」「发送消息」权限
  • 不要设置过短的发送间隔,短时间高频发送消息会触发Discord的速率限制,严重时会导致账号被限制使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:30:02