Discord.js创建工单频道报错:Invalid Form Body
解决Discord工单机器人创建频道时的
name[BASE_TYPE_REQUIRED]错误 错误原因
你使用的Discord.js版本(大概率是v14+)中,guild.channels.create的参数结构发生了变更:旧版本(v13及以下)允许第一个参数单独传入频道名称,第二个参数传配置对象;但v14+要求所有配置(包括名称)都放在同一个配置对象中,直接传单独的名称会被API忽略,导致name字段缺失报错。
修正后的代码
const channel = await interaction.guild.channels.create({ name: `ticket-${interaction.user.username}`, parent: '929135588949512232', topic: interaction.user.id, type: 0 // 或者使用ChannelType.GuildText,需提前导入枚举 })
额外注意事项
- 频道类型参数:v14+版本中
type不再接受字符串'GUILD_TEXT',可以直接用数字0,或者导入ChannelType枚举后使用ChannelType.GuildText:const { ChannelType } = require('discord.js'); // 配置中对应写法:type: ChannelType.GuildText - 权限与ID校验:确保机器人拥有
ManageChannels权限,同时确认parent对应的分类ID在当前服务器中真实存在。 - 名称合法性:频道名称不能包含Discord禁止的特殊字符,需符合平台命名规则。
内容的提问来源于stack exchange,提问作者Nepzerox
相关产品推荐
相关产品推荐

