【问题标题】:DiscordAPIError: Invalid Form Body data.embeds[0].description: This field is required ErrorDiscordAPIError: Invalid Form Body data.embeds[0].description: This field is required Error
【发布时间】:2021-11-09 02:43:58
【问题描述】:

我正在尝试制作一个发送嵌入的命令。但由于某种原因,它一直说DiscordAPIError: Invalid Form Body data.embeds[0].description: This field is required Error,即使描述不是空格。

我将它托管在 heroku 中,因此错误来自日志。

命令脚本:

module.exports = {
    name: "test",
    desc: "A test command",
    cmd: async (interaction, utils) => {
        await interaction.user.fetch()
            .then(async ({ hexAccentColor }) => {
                interaction.reply({ embeds: [
                    utils.embed(
                        "Hello!",
                        interaction.member.displayAvatarURL(),
                        `Your name is <@${interaction.member.id}> and you're now in the special list! (jk)`,
                        "",
                        hexAccentColor
                    )
                ] })
            })
    }
}

实用程序:

embed: async (title, thumbnail, desc, footer, color) => {
                const { MessageEmbed } = require("discord.js")

                await client.user.fetch()
                    .then(({ hexAccentColor }) => {
                        const embed = new MessageEmbed()
                            .setAuthor("GND Bot", client.user.avatarURL())
                            .setTitle(title)
                            .setColor(color || hexAccentColor)
                            .setDescription(desc)
                            .setThumbnail(thumbnail || client.user.avatarURL())
                            .setFooter(footer)
                        return embed
                    })
}

错误:

2021-11-08T10:20:12.649708+00:00 app[worker.1]: /app/node_modules/discord.js/src/rest/RequestHandler.js:349
2021-11-08T10:20:12.649731+00:00 app[worker.1]:       throw new DiscordAPIError(data, res.status, request);
2021-11-08T10:20:12.649732+00:00 app[worker.1]:             ^
2021-11-08T10:20:12.649732+00:00 app[worker.1]: 
2021-11-08T10:20:12.649732+00:00 app[worker.1]: DiscordAPIError: Invalid Form Body
2021-11-08T10:20:12.649733+00:00 app[worker.1]: data.embeds[0].description: This field is required
2021-11-08T10:20:12.649733+00:00 app[worker.1]:     at RequestHandler.execute (/app/node_modules/discord.js/src/rest/RequestHandler.js:349:13)
2021-11-08T10:20:12.649734+00:00 app[worker.1]:     at processTicksAndRejections (node:internal/process/task_queues:96:5)
2021-11-08T10:20:12.649734+00:00 app[worker.1]:     at async RequestHandler.push (/app/node_modules/discord.js/src/rest/RequestHandler.js:50:14)
2021-11-08T10:20:12.649735+00:00 app[worker.1]:     at async CommandInteraction.reply (/app/node_modules/discord.js/src/structures/interfaces/InteractionResponses.js:98:5) {
2021-11-08T10:20:12.649735+00:00 app[worker.1]:   method: 'post'

【问题讨论】:

  • 此错误清楚地表明.setDescription() 中的文本是必需的,因此请尝试控制台记录您的desc 变量并检查它是否为空
  • 不是,它说的是字符串,当我执行 typeof 时,它会打印字符串
  • 确保不是这个函数的使用,而是另一个导致错误的文件/lign,检查以确保并编辑您的答案以包含整个错误,它可以帮助我们
  • 我已经确定并且我已经编辑了答案

标签: node.js discord.js


【解决方案1】:

我发现了问题。我将嵌入返回到 .then() 中的回调,所以它返回未定义。

【讨论】:

    【解决方案2】:

    通过函数获取embed对象时,调用embeds数组内部的函数时会调用APIError,需要将embed放入一个变量中,然后在消息中发送。

    【讨论】:

      猜你喜欢
      • 2021-03-27
      • 2021-10-31
      • 2021-10-01
      • 2021-02-28
      • 2021-10-03
      • 2021-12-30
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      相关资源
      最近更新 更多