Layout (estructura)
Organizan a otros componentes: Container, Section, Action Row, Separator y, en modales, Label.
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.
{ "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.
IS_COMPONENTS_V2Para 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 |
id?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:
POST /channels/{channel.id}/messages).?with_components=true a la URL.Ya conoces lo básico. Ahora vamos a enviar tu primer mensaje.