Discord.js v14创建频道命令报错求助:DiscordAPIError[50035]
Discord.js v14 创建频道报错 DiscordAPIError[50035] 解决办法
这个错误DiscordAPIError[50035]: Invalid Form Body name[BASE_TYPE_REQUIRED]: This field is required的核心原因是创建频道时未传入必填的name参数,或者参数格式不符合要求。
正确实现示例(Slash命令)
以下是符合Discord.js v14规范的创建频道命令代码:
const { SlashCommandBuilder, PermissionsBitField, ChannelType } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('create-channel') .setDescription('创建新频道') .addStringOption(option => option.setName('name') .setDescription('频道名称') .setRequired(true)), async execute(interaction) { // 校验机器人权限 if (!interaction.guild.members.me.permissions.has(PermissionsBitField.Flags.ManageChannels)) { return interaction.reply('缺少创建频道的权限,请先配置权限'); } const channelName = interaction.options.getString('name'); try { // 创建文本频道,如需语音频道可替换为ChannelType.GuildVoice const newChannel = await interaction.guild.channels.create({ name: channelName, type: ChannelType.GuildText, reason: '用户通过命令创建频道' }); interaction.reply(`频道创建成功:${newChannel}`); } catch (err) { console.error(err); interaction.reply('频道创建失败,请重试'); } }, };
常见问题排查
- 不要沿用v13及更早版本的写法:v14中
channels.create必须传入包含name的配置对象,不能省略该字段。 - 检查参数拼写:确保字段名是小写的
name,而非大写或其他变体。 - 权限校验:机器人必须拥有
ManageChannels权限才能创建频道,否则即使参数正确也会报错。
内容的提问来源于stack exchange,提问作者Vasilis
相关产品推荐
相关产品推荐

