Ir al contenido

¿Qué son los Components V2?

Los Components V2 son el sistema moderno de Discord para construir mensajes. En lugar de escribir un texto y añadirle un embed, construyes el mensaje pieza a pieza, como si fuera una página: textos, imágenes, separadores, botones y menús, todo en el orden que tú quieras.

Vista previa
Mi BotAPPHoy a las 12:00

Hola 👋

Este mensaje está hecho solo con componentes.

payload.json
{
"flags": 32768,
"components": [
{
"type": 10,
"content": "# Hola 👋\nEste mensaje está hecho **solo con componentes**."
},
{
"type": 1,
"components": [
{
"type": 2,
"style": 3,
"label": "Me gusta",
"custom_id": "like",
"emoji": {
"name": "👍"
}
}
]
}
]
}

Un mensaje V2 es una lista de componentes. Algunos componentes muestran cosas (texto, imágenes), otros agrupan (contenedores, secciones) y otros reaccionan a clics (botones, menús).

Layout (estructura)

Organizan a otros componentes: Container, Section, Action Row, Separator y, en modales, Label.

Contenido

Muestran información: Text Display, Thumbnail, Media Gallery y File.

Interactivos

El usuario puede usarlos: Button, los Select Menus, Text Input, File Upload, Radio Group y Checkbox.

Para que Discord interprete tu mensaje como V2 tienes que enviar el flag IS_COMPONENTS_V2 en el campo flags del mensaje.

Nombre Valor Cálculo
IS_COMPONENTS_V2 32768 1 << 15

Si además quieres que el mensaje sea efímero (solo lo ve quien usó el comando), suma el flag EPHEMERAL (64): 32768 + 64 = 32832.

Embeds + componentes clásicos Components V2
Texto del mensaje content Componente Text Display
Tarjeta con color embeds Componente Container con accent_color
Imágenes Una imagen grande y un thumbnail por embed Media Gallery con hasta 10 imágenes, thumbnails en cualquier sección
Botones Solo al final del mensaje (hasta 5 filas) En cualquier parte: dentro de contenedores o al lado de un texto
Orden Fijo Libre: tú decides el orden
Máximo de componentes 5 filas de acción 40 componentes en total

Todos los componentes tienen dos campos comunes:

Campo Tipo Descripción
type entero obligatorio El tipo de componente (por ejemplo 10 = Text Display).
id entero de 32 bits opcional Identificador único dentro del mensaje. Si no lo pones, Discord lo asigna automáticamente en orden. 0 se considera vacío.

Los Components V2 funcionan en cualquier sitio donde envíes un mensaje:

  • Crear mensaje en un canal (POST /channels/{channel.id}/messages).
  • Responder a una interacción (comandos, botones, menús, modales).
  • Mensajes de seguimiento (follow-ups) y edición de la respuesta original.
  • Webhooks, añadiendo ?with_components=true a la URL.

Ya conoces lo básico. Ahora vamos a enviar tu primer mensaje.