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

DiscordJS 13 个人资料斜杠命令:获取指定频道用户最后消息嵌入展示

实现方案

前置要求

  • 机器人客户端启动时已注册 GUILD_MESSAGES 意图,无该权限无法读取频道消息历史
  • 机器人在自我介绍频道拥有「查看频道」、「读取消息历史」权限

实现代码

你可以直接将以下代码追加到你现有逻辑的DM状态判断之后,即可完成功能接入:

// 拉取用户自我介绍逻辑
const INTRO_CHANNEL_ID = "替换为你实际的自我介绍频道ID";
const introChannel = guild.channels.cache.get(INTRO_CHANNEL_ID);
let introText = "`暂无发布的自我介绍`";

// 校验频道存在且为可发消息的文本频道
if (introChannel && introChannel.isText()) {
  // 拉取频道最近100条消息,频道活跃度高可适当放大limit参数
  const recentMessages = await introChannel.messages.fetch({ limit: 100 });
  // 过滤出目标用户发送的消息,取时间最新的第一条
  const userLatestIntro = recentMessages.filter(msg => msg.author.id === member.id).first();
  
  if (userLatestIntro) {
    // 超出500字截断避免Embed字段长度超限,可根据需求调整阈值
    introText = userLatestIntro.content.length > 500 
      ? `${userLatestIntro.content.slice(0, 500)}...`
      : userLatestIntro.content;
  }
}

// 写入用户信息Embed
embeduserinfo.addField("**❱ 自我介绍**", introText, false);

优化建议

如果你的自我介绍频道消息量很大,每次拉取全量消息历史响应速度慢,建议提前将用户发布的自我介绍内容存储到自建数据库中,查询时直接读库即可,性能和稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:06:03