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

Discord.js v14中从反应消息获取嵌入内容的问题咨询

问题解答

为什么直接访问reaction.message.embeds是空的?

Discord网关触发反应事件时,推送的reaction.message是个精简版的部分消息对象,只携带了消息ID、所属频道、作者这类基础信息,嵌入内容(embeds)这类附加数据不会默认附带,所以直接读embeds自然是空数组。

网关意图的影响

你提到的GatewayIntentsBits.MessageContent是用来获取消息文本内容的权限,和读取嵌入内容没关系——哪怕开了这个意图,reaction.message还是精简对象,拿不到嵌入数据。

为什么调用fetch就能拿到嵌入?

reaction.message.channel.messages.fetch(reaction.message.id)是直接向Discord API发起请求,拉取这条消息的完整数据对象,里面包含了所有附加信息(嵌入、附件、反应记录等),所以能正常读取embeds字段。

要不要用这种方式?

可以用,但得注意两个细节:

  • Discord API有速率限制,频繁调用fetch可能触发限流,高频率操作时要做好请求控制。
  • 如果你的机器人经常需要处理这类转发需求,也可以考虑在消息刚发布时就缓存完整的消息对象,但这会增加内存消耗,得根据你的业务场景权衡。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:20:43