Discord.js: "Invalid Form Body"-Fehler?
Hi, ich habe ein Problem mit Discord.js und dem ButtonBuilder.
Der Fehler (unter dieser Fehlermeldung kommt noch eine Meldung mit JSON, falls man das in eine Webseite reinpacken will oder so):
DiscordAPIError[50035]: Invalid Form Body
components[0][UNION_TYPE_CHOICES]: Value of field "type" must be one of (1,).
Der JavaScript Code (unten, das habe ich nicht noch kopiert, habe ich den Bot noch mit dem Token aktiviert):
import { Client, GatewayIntentBits, Partials, ButtonStyle, ButtonBuilder } from "discord.js"
const client = new Client({ intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.DirectMessages,
GatewayIntentBits.GuildMembers
]})
const btn = new ButtonBuilder({
custom_id: "Hi",
style: ButtonStyle.Primary,
label: "Moinsen"
})
client.on("messageCreate", async (message) => {
if (message.author.bot == false) {
message.reply({ content: "Hello", components: [btn] })
}
})
2 Antworten
Ave!
Laut der Dokumentation von discord.js muss ein Button in einer 'ActionRow' liegen. Von dieser dürfen maximal fünf pro Nachricht existieren. Wiederum können in einer ActionRow maximal fünf Buttons liegen.
In deinem Beispiel übergibst du den Button direkt in das 'components' Array. Ich kann mir vorstellen, dass hier der Fehler liegt, weil der Button nicht in einer ActionRow liegt.
Bedeutet: Per 'new ActionRowBuilder' eine ActionRow definieren, hier den Button übergeben und die ActionRow dann als component übergeben.
Schau einmal hier, das habe ich dazu gefunden:
https://discordjs.guide/interactions/buttons.html#building-and-sending-buttons
Gerne, kannst ja dann mal für andere Nutzer mit dem gleichen Problem eine Rückmeldung geben ob das geklappt hat :)
Ich schaue Mal, ob das funktioniert. Danke für die Antwort aber schonmal
Ich schaue Mal, ob das hilft. Aber danke für die Antwort