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

Discord.js V14如何给发送的Embed自动添加点赞/点踩表情反应?

Discord.js V14 发送Embed后自动添加表情反应的解决方案

问题原因

你直接调用 embed_sugestao.react('🌐') 的方式在V14中无效,因为 embed_sugestao 是Embed构造实例,而非已经发送到频道的消息对象。只有已发送的 Message 对象才能调用 react() 方法添加表情反应。

修正后的代码

需要先获取 interaction.reply() 返回的已发送消息对象,再对其执行表情添加操作。以下是两种实现方式:

方式一:依次添加表情

interaction.reply({ 
  embeds: [embed_sugestao], 
  content: `**${interaction.user}, sugestão enviada com sucesso!**` 
})
.then(async (sentMessage) => {
  // 发送日志Embed
  await canal_logs_sugestoes.send({ embeds: [embed_logs_sugestao] });
  // 给发送的消息添加点赞、点踩表情
  await sentMessage.react('👍');
  await sentMessage.react('👎');
})
.catch(() => {
  console.log(`Ocorreu um Erro no Comando /sugerir`);
});

方式二:批量添加表情(效率更高)

使用 Promise.all() 并行处理多个表情添加请求:

interaction.reply({ 
  embeds: [embed_sugestao], 
  content: `**${interaction.user}, sugestão enviada com sucesso!**` 
})
.then(async (sentMessage) => {
  await canal_logs_sugestoes.send({ embeds: [embed_logs_sugestao] });
  // 批量添加表情
  await Promise.all([
    sentMessage.react('👍'),
    sentMessage.react('👎')
  ]);
})
.catch(() => {
  console.log(`Ocorreu um Erro no Comando /sugerir`);
});

注意事项

  • 确保机器人拥有目标频道的 Add Reactions 权限。
  • 如果你在V14中使用 EmbedBuilder 构造Embed,代码逻辑完全一致,核心是获取发送后的 Message 对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 07:10:57