无法发送嵌入和组件 discord.js v13

Posted

技术标签:

【中文标题】无法发送嵌入和组件 discord.js v13【英文标题】:Cannot send embed and components discord.js v13 【发布时间】:2021-12-12 08:41:51 【问题描述】:

我无法在 discord.js v13 上使用嵌入发送按钮,机器人只发送嵌入而不发送按钮。我收到错误“从正文无效”,但我不知道该怎么办?

这是我的代码:

        const embedopen = new Discord.MessageEmbed()
            .setDescription(`Bonjour $button.user.tag, bienvenue dans votre ticket. Un <@&799060000122994698> ou l'<@&799049340538191892> va s'occuper de vous.`)
            .setTimestamp()
        const row = new Discord.MessageActionRow()
            .addComponents(
                new Discord.MessageButton()
                    .setLabel("Fermer le ticket")
                    .setCustomId("close_ticket")
                    .setEmoji('❌')
                    .setStyle("red")
            )

        channel.send(embeds: [embedopen], components: [row])

这是错误:

 04:55:06 -> [ERR] -> DiscordAPIError: Invalid Form Body
components[0].components[0].style: This field is required
    at RequestHandler.execute (h:\Users\Zarcross\Desktop\SiteComplet\node_modules\discord.js\src\rest\RequestHandler.js:298:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async RequestHandler.push (h:\Users\Zarcross\Desktop\SiteComplet\node_modules\discord.js\src\rest\RequestHandler.js:50:14)
    at async TextChannel.send (h:\Users\Zarcross\Desktop\SiteComplet\node_modules\discord.js\src\structures\interfaces\TextBasedChannel.js:172:15) 
  method: 'post',
  path: '/channels/902752250697515048/messages',
  code: 50035,
  httpStatus: 400,
  requestData: 
    json: 
      content: undefined,
      tts: false,
      nonce: undefined,
      embeds: [Array],
      components: [Array],
      username: undefined,
      avatar_url: undefined,
      allowed_mentions: undefined,
      flags: undefined,
      message_reference: undefined,
      attachments: undefined,
      sticker_ids: undefined
    ,
    files: []
  

【问题讨论】:

【参考方案1】:

如果您想要一个红色按钮,请将.setStyle("red") 更改为.setStyle("DANGER")

您收到错误是因为“红色”不是有效的按钮样式。

目前有五种不同的按钮样式:

PRIMARY - 模糊按钮

SECONDARY - 一个灰色按钮

SUCCESS - 绿色按钮

DANGER - 一个红色按钮

LINK - 导航到 URL 的按钮。

【讨论】:

现在对我有用!我在 v13 中忘记了这个变化

以上是关于无法发送嵌入和组件 discord.js v13的主要内容,如果未能解决你的问题,请参考以下文章

嵌入上的 Discord.js 按钮

DiscordAPIError:无法使用 Discord 嵌入发送空消息

Discord.js 无法向该用户发送消息

可以发送嵌入消息的 Discord.js 机器人

尝试使用 discord.js 将 client.reply 作为嵌入消息发送时出现问题

发送Discord.JS嵌入内容