如何在Discord.js消息中链接机器人创建的Discord频道
在Discord消息中链接机器人新建频道的解决方案
你的代码里有两处问题导致无法生成可点击的频道链接:
- 没有捕获
guild.channels.create()返回的新建频道对象,无法获取正确的频道ID - 错误使用了
guild.channel.id(该路径不存在),且未采用Discord的频道链接格式
修正后的代码如下:
const guild = client.guilds.cache.get("1057116059750117426"); const storageBuffer = fs.readFileSync("./src/Storage/storage.json"); const storageData = JSON.parse(storageBuffer.toString()); storageData.ticket_id++; const ticketId = storageData.ticket_id; // 捕获新建频道的实例对象 const newTicketChannel = await guild.channels.create({ name: `TICKET-${ticketId}`, parent: "1057370813357109308", }); // 使用Discord内置的频道链接格式:<#频道ID> const channelLink = `<#${newTicketChannel.id}>`; await interaction.update({ ephemeral: true, content: `Your ticket has been submitted \n You can view it here -> ${channelLink}`, components: [], embeds: [], // 修正字段名为复数形式,符合Discord API要求 });
关键说明:
guild.channels.create()执行后会返回新建的Channel实例,通过它能直接获取频道ID- Discord中
<#频道ID>格式的文本会自动渲染为可点击的频道链接,用户点击可直接跳转至目标频道 - 额外修正了
embed为embeds(复数),避免因字段名错误导致消息更新失败
内容的提问来源于stack exchange,提问作者Icebreaker
相关产品推荐
相关产品推荐

