# Cómo crear un bot de Discord

## Creando un bot

**Paso 1.** Crea una aplicación ([sigue el enlace](https://discord.com/developers/applications)).

**Paso 2.** Añade un bot (haz clic en el botón "**Añadir bot"**).

<div data-with-frame="true"><figure><img src="/files/237bcb2ec269fe00c71a3e806802b176ea30b579" alt=""><figcaption></figcaption></figure></div>

**Paso 2.1.** En la **Instalación** sección, selecciona **Instalar enlace → Ninguno**.

<div data-with-frame="true"><figure><img src="/files/7c40a513d80934ee746253533c6eb790bfee2a07" alt=""><figcaption></figcaption></figure></div>

**Paso 2.2.** En la **Bot** sección, desactiva **Bot público**, luego habilita los siguientes **Intents**:

* **Intent de contenido de mensajes**
* **Intent de miembros del servidor**

También puedes habilitar **Intent de presencia** para uso futuro.

<div data-with-frame="true"><figure><img src="/files/6fc36da6601380c0596978e54387833267291cb7" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/b28cca916d3a99b204babce816a4ce6c24c3ed51" alt=""><figcaption></figcaption></figure></div>

**Paso 3.** Obtén el token (**Restablecer token**).

**Paso 4.** Añade el bot al servidor:

* Ve a **OAuth2 → Generador de URL**.
* En **Scopes**, selecciona **bot**.
* En **Permisos del bot**, elige **Enviar mensajes**, **Leer historial de mensajes**, y cualquier otro permiso requerido.

Luego abre el enlace generado, selecciona el servidor donde deseas añadir el bot y confirma la autorización.

<div data-with-frame="true"><figure><img src="/files/5fb45c8abf35536642e5d97261addfc025bc2bbb" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/24f03ffc0dd75ce691843103ccfd4172dc52071e" alt=""><figcaption></figcaption></figure></div>

Para obtener el webhook completo de Discord, simplemente asigna cualquier valor a la **save\_webhook** variable.

Si la variable está configurada, el webhook se guardará en **discord\_webhook**.

## Conectando el bot de Discord en MaviBot

Ahora ve a la **“Mensajeros”** sección de tu proyecto en **MaviBot**:

<div data-with-frame="true"><figure><img src="/files/d965e5766d25cb7ea3f0d27647a4f512522ae0ff" alt=""><figcaption></figcaption></figure></div>

Luego pega el token copiado de **Discord**.

<div data-with-frame="true"><figure><img src="/files/1635a863f7d26afc77fe5e020d6672f838b95d52" alt=""><figcaption></figcaption></figure></div>

Haz clic en el **Hecho** botón.

## Funciones de calculadora

### Responder a un mensaje

discord\_reply\_to\_message(message\_id, text) - Esta función se usa para **responder a un mensaje**.

| Parámetros                                            | Descripción                                     |
| ----------------------------------------------------- | ----------------------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | El **ID del mensaje** al que quieres responder. |
| <mark style="color:$danger;">**!**</mark> text        | El **texto del mensaje de respuesta**.          |

### Eliminar un mensaje

discord\_delete\_message(message\_id) - Esta función se usa para **eliminar un mensaje.**&#x20;

| Parámetros                                            | Descripción                          |
| ----------------------------------------------------- | ------------------------------------ |
| <mark style="color:$danger;">**!**</mark> message\_id | El **ID del mensaje** para eliminar. |

### Editar un mensaje

discord\_edit\_message(message\_id, text) - Esta función se usa para **editar un mensaje**.

| Parámetros                                            | Descripción                        |
| ----------------------------------------------------- | ---------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | El **ID del mensaje** para editar. |
| <mark style="color:$danger;">**!**</mark> text        | El **nuevo texto del mensaje**.    |

### Fijar un mensaje

discord\_pin\_message(message\_id) - Esta función se usa para **fijar un mensaje.**

| Parámetros                                            | Descripción                       |
| ----------------------------------------------------- | --------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | El **ID del mensaje** para fijar. |

### Desfijar un mensaje

discord\_unpin\_message(message\_id) - Esta función se usa para **desfijar un mensaje.**

| Parámetros                                            | Descripción                          |
| ----------------------------------------------------- | ------------------------------------ |
| <mark style="color:$danger;">**!**</mark> message\_id | El **ID del mensaje** para desfijar. |

### Enviar una reacción a un mensaje

discord\_send\_reaction(message\_id, reaction) - Esta función se usa para **enviar una reacción a un mensaje.**

| Parámetros                                            | Descripción                                                                                                                                                                                                                      |
| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | El **ID del mensaje** para enviar una reacción a.                                                                                                                                                                                |
| <mark style="color:$danger;">**!**</mark> reacción    | El **reacción a enviar**. Puedes proporcionar un solo emoji (por ejemplo, ❤️) o el ID de un emoji personalizado en el servidor. La información sobre cómo obtener el ID de un emoji personalizado se proporciona a continuación. |

### Eliminar una reacción de un mensaje en un canal

discord\_delete\_reaction(message\_id, reaction, user\_id) - Esta función se usa para **eliminar una reacción de un mensaje en un canal.**

| Parámetros                                            | Descripción                                                                                                                                                                                                                        |
| ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | El **ID del mensaje** del que eliminar la reacción.                                                                                                                                                                                |
| <mark style="color:$danger;">**!**</mark> reacción    | El **reacción a eliminar**. Puedes proporcionar un solo emoji (por ejemplo, ❤️) o el ID de un emoji personalizado en el servidor. La información sobre cómo obtener el ID de un emoji personalizado se proporciona a continuación. |
| user\_id                                              | El **ID del usuario** cuya reacción quieres eliminar. Este parámetro es opcional si quieres eliminar la reacción del bot actual.                                                                                                   |

## Devoluciones de llamada

Cuando un usuario envía una reacción, se recibe un callback en el chat en el siguiente formato:

new\_like ❤️ uid413984787162726410

<div data-with-frame="true"><figure><img src="/files/f1f257862d1e641038e47a47e80c556be6ea6f88" alt="" width="563"><figcaption></figcaption></figure></div>

Donde `uid413984787162726410` es el **ID del usuario** que envió la reacción.

## Cómo obtener el ID de un emoji personalizado

Si envías una reacción personalizada a un mensaje en un canal de Discord, se recibirá un callback en el siguiente formato:

new\_like beer:1479419477396291696 uid413984787162726410

<div data-with-frame="true"><figure><img src="/files/5669b54fb94c74ef423126b8172cdb94515d4983" alt="" width="563"><figcaption></figcaption></figure></div>

Donde `beer:1479419477396291696` es el **ID de la reacción**. Puedes copiarlo para usarlo en funciones relacionadas con reacciones.

## Cómo obtener el ID del mensaje

Puedes obtener el ID del mensaje del cliente desde el webhook si **save\_webhook** está habilitado. Ejemplo:

`data = discord_webhook["data"]`\
`msg_id = data["id"]`\
`result = discord_reply_to_message(msg_id, "Esta es una respuesta a un mensaje")`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/es/chatbot/mensajeros/discord/chatbot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
