DiscordAPIError:无效的表单正文

Posted

技术标签:

【中文标题】DiscordAPIError:无效的表单正文【英文标题】:DiscordAPIError: Invalid Form Body 【发布时间】:2021-04-09 20:50:46 【问题描述】:

我正在尝试使用此端点上可用的 API 创建一个发送随机图像的命令,(在这种情况下为 waifu)https://waifu.pics/api/sfw/waifu

我正在执行的命令是test1,这是我的代码:

if (command === 'test1') 
      const a = new Discord.MessageEmbed()
      got('https://waifu.pics/api/sfw/waifu').then(response => 
      let content = response.body;
      let Image = content.url;
      a.setTitle('test')
      a.setImage(`$Image`)
      message.channel.send(a)
  )

我面临的问题是以下错误:

embed.image.url: Scheme "undefined" is not supported. Scheme must be one of ('http', 'https').

【问题讨论】:

【参考方案1】:

使用此格式发送嵌入消息

message.channel.send(
embed: a
)

message.channel.send(
embed: a,
content: "my content without embed"
)

【讨论】:

请添加更多详细信息以扩展您的答案,例如工作代码或文档引用。 这没有回答所提出的问题,OP 要求解决方案从他的 API 端点发送带有图像的嵌入,而不是如何发送简单的嵌入。【参考方案2】:

您正在尝试使用变量 ImagesetImage(),这是来自 API 的原始响应,但是 API 端点似乎正在发送 JSON 响应,因此您需要先对其进行解析并将其转换为数组,并从 url 键中获取 URL。

if (command === 'test1') 
    got("https://waifu.pics/api/sfw/waifu").then(response => 
        let imageData = JSON.parse(response); // Parse the JSON response from the API.

        // Prepare the embed.
        let embed = new MessageEmbed()
            .setTitle("Embed Title")
            .setDescription("Embed message here!")
            .setImage(imageData.url); // Set the image.

        message.channel.send( embeds: [embed] );
    );

【讨论】:

以上是关于DiscordAPIError:无效的表单正文的主要内容,如果未能解决你的问题,请参考以下文章

未处理的拒绝:DiscordAPIError:尝试禁止命令时表单正文无效

DiscordAPIError:无效的表单正文 embed.image.url:不支持方案“[对象响应]”。方案必须是 ('http', 'https') 之一

Discord.js DiscordAPIError:无效的表单正文 0.permissions:长度必须为 10 或更少

为啥我的 Discord.js 欢迎消息中出现“无效的表单正文”错误?

discord.py embed.image.url 中的无效表单正文:不支持方案“<discord.file.file object at 0x000001e151c02360>”

Discord.js Slash 命令名称无效