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

如何在Discord的MessageEmbed中创建可点击的语音频道链接

解决Discord MessageEmbed中语音频道可点击链接的问题

我来帮你搞定这个语音频道链接的问题!你写的代码思路是对的,但有两个小细节可能导致链接没生效,咱们一步步修正:

1. 修正频道ID的属性名

在Discord.js v13及以上版本中,频道ID的属性名是**channelId**(驼峰命名,小写的d),而不是你用的channelID。如果你的Discord.js版本是较新的,channelID会返回undefined,直接导致链接无效。

2. 适配新版本的Embed发送格式

Discord.js v13+开始,发送Embed需要用{ embeds: [embed] }的格式包裹,而不是直接传入Embed对象,旧写法在新版本里会无法正确渲染。

修正后的完整代码

// 检查用户是否在语音频道
if (!message.member.voice.channel) {
  return message.channel.send("你还没有加入任何语音频道哦!");
}

// 删除原消息(记得确保机器人有消息管理权限)
message.delete().catch(err => console.error("删除消息失败:", err));

// 用模板字符串简化链接拼接
const voiceChannelLink = `https://discord.com/channels/${message.guild.id}/${message.member.voice.channelId}`;

// 创建并发送带可点击链接的Embed
const joinEmbed = new Discord.MessageEmbed()
  .setDescription(`[点击加入](${voiceChannelLink})`);

message.channel.send({ embeds: [joinEmbed] });

额外注意事项

  • 机器人需要拥有发送Embed和管理消息(如果要删除原消息)的服务器权限;
  • 点击链接后,Discord会跳转到对应语音频道的页面,桌面端用户可以直接唤起客户端加入频道,移动端则会引导到频道界面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 09:22:31