Estoy tratando de obtener un archivo adjunto de imagen a través de una interacción de comando de barra diagonal de Discord, por lo que puedo enviar una versión manipulada al usuario, pero parece que no puedo hacerlo.
La interacción en sí funciona bien, pero el objeto de la opción "image" es solo {name: 'image', type: undefined, value: '972518871573602374'} . Creo que es extraño que el tipo no esté definido a pesar de que claramente uso el método .addAttachmentOption() .
Aquí está mi generador de comandos:
new SlashCommandBuilder() .setName("dither") .setDescription("Apply a dithering effect to an image") .addAttachmentOption((option)=> option .setRequired(true) .setName("image") .setDescription("The image to dither")) .addNumberOption((option)=> option .setRequired(false) .setName("intensity") .setDescription(`% of dithering to apply (${intensityDefault}% by default)`)) .toJSON()Pensé que la URL o algo así podría estar en otra parte del objeto de interacción, pero no pude encontrar nada relacionado con los archivos adjuntos. Tampoco pude encontrar nada sobre los archivos adjuntos de interacción en la documentación, así que pensé en intentarlo aquí. ¿Es solo una característica no implementada? Pero, ¿por qué habría un método para ello entonces?
Tampoco estoy seguro de lo que representa la propiedad de value . Pensé que podría ser la identificación del archivo adjunto, pero incluso si quisiera recrear la URL del archivo adjunto yo mismo, aún necesitaría saber el nombre del archivo.
Según https://discordjs.guide/interactions/slash-commands.html#parsing-options :
const attachment = interaction.options.getAttachment("image") const name = attachment.name const url = attachment.url const proxyURL = attachment.proxyURL Tenga en cuenta que, en el ejemplo anterior, he usado image porque ese fue el nombre que atribuyó al archivo adjunto: .setName("image") .