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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:35:17