# Як створити бота для Discord

## Створення бота

**Крок 1.** Створіть застосунок ([перейдіть за посиланням](https://discord.com/developers/applications)).

**Крок 2.** Додайте бота (натисніть кнопку "**Add Bot")**).

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

**Крок 2.1.** У **Встановлення** , виберіть **Install Link → None**.

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

**Крок 2.2.** У **Бот** розділі вимкніть **Public Bot**, потім увімкніть такі **Інтенти**:

* **Message Content Intent**
* **Server Members Intent**

Також можна увімкнути **Presence Intent** для подальшого використання.

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

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

**Крок 3.** Отримайте токен (**Reset Token**).

**Крок 4.** Додайте бота на сервер:

* Перейдіть за **OAuth2 → URL Generator**.
* У **Scopes**, виберіть **bot**.
* У **Bot Permissions**, оберіть **Send Messages**, **Read Message History**, та будь-які інші необхідні дозволи.

Потім відкрийте згенероване посилання, виберіть сервер, на який хочете додати бота, і підтвердьте авторизацію.

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

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

Щоб отримати повний вебхук із Discord, просто призначте будь-яке значення змінній **змінній** змінну.

Якщо змінну встановлено, вебхук буде збережено в **discord\_webhook**.

## Підключення Discord-бота в MaviBot

Тепер перейдіть до **«Messengers»** розділу у вашому проєкті в **MaviBot**:

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

Потім вставте токен, скопійований із **Discord**.

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

Натисніть **Готово** кнопку.

## Функції калькулятора

### Відповісти на повідомлення

discord\_reply\_to\_message(message\_id, text) - Ця функція використовується для **відповіді на повідомлення**.

| Параметри                                             | Опис                                                  |
| ----------------------------------------------------- | ----------------------------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | Поле **ID повідомлення** на яке ви хочете відповісти. |
| <mark style="color:$danger;">**!**</mark> text        | Поле **текст повідомлення-відповіді**.                |

### Видалити повідомлення

discord\_delete\_message(message\_id) - Ця функція використовується для **видалення повідомлення.**&#x20;

| Параметри                                             | Опис                                    |
| ----------------------------------------------------- | --------------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | Поле **ID повідомлення** для видалення. |

### Редагувати повідомлення

discord\_edit\_message(message\_id, text) - Ця функція використовується для **редагування повідомлення**.

| Параметри                                             | Опис                                      |
| ----------------------------------------------------- | ----------------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | Поле **ID повідомлення** для редагування. |
| <mark style="color:$danger;">**!**</mark> text        | Поле **новий текст повідомлення**.        |

### Закріпити повідомлення

discord\_pin\_message(message\_id) - Ця функція використовується для **закріплення повідомлення.**

| Параметри                                             | Опис                                      |
| ----------------------------------------------------- | ----------------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | Поле **ID повідомлення** для закріплення. |

### Відкріпити повідомлення

discord\_unpin\_message(message\_id) - Ця функція використовується для **відкріплення повідомлення.**

| Параметри                                             | Опис                                       |
| ----------------------------------------------------- | ------------------------------------------ |
| <mark style="color:$danger;">**!**</mark> message\_id | Поле **ID повідомлення** для відкріплення. |

### Надіслати реакцію на повідомлення

discord\_send\_reaction(message\_id, reaction) - Ця функція використовується для **надсилання реакції на повідомлення.**

| Параметри                                             | Опис                                                                                                                                                                                     |
| ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | Поле **ID повідомлення** для надсилання реакції на.                                                                                                                                      |
| <mark style="color:$danger;">**!**</mark> reaction    | Поле **реакція для надсилання**. Ви можете вказати один емодзі (наприклад, ❤️) або ID кастомного емодзі на сервері. Інформацію про те, як отримати ID кастомного емодзі, наведено нижче. |

### Видалити реакцію з повідомлення в каналі

discord\_delete\_reaction(message\_id, reaction, user\_id) - Ця функція використовується для **видалення реакції з повідомлення в каналі.**

| Параметри                                             | Опис                                                                                                                                                                                    |
| ----------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:$danger;">**!**</mark> message\_id | Поле **ID повідомлення** з якого потрібно видалити реакцію.                                                                                                                             |
| <mark style="color:$danger;">**!**</mark> reaction    | Поле **реакція для видалення**. Ви можете вказати один емодзі (наприклад, ❤️) або ID кастомного емодзі на сервері. Інформацію про те, як отримати ID кастомного емодзі, наведено нижче. |
| user\_id                                              | Поле **ID користувача** чию реакцію ви хочете видалити. Цей параметр є необов’язковим, якщо ви хочете видалити реакцію поточного бота.                                                  |

## Зворотні дзвінки

Коли користувач надсилає реакцію, у чаті отримується виклик у такому форматі:

new\_like ❤️ uid413984787162726410

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

Де `uid413984787162726410` це **ID користувача** хто надіслав реакцію.

## Як отримати ID кастомного емодзі

Якщо ви надсилаєте кастомну реакцію на повідомлення в каналі Discord, буде отримано виклик у такому форматі:

new\_like beer:1479419477396291696 uid413984787162726410

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

Де `beer:1479419477396291696` це **ID реакції**. Ви можете скопіювати його для використання у функціях, пов’язаних із реакціями.

## Як отримати ID повідомлення

Ви можете отримати ID повідомлення клієнта з вебхука, якщо **змінній** увімкнено. Приклад:

`data = discord_webhook["data"]`\
`msg_id = data["id"]`\
`result = discord_reply_to_message(msg_id, "Це відповідь на повідомлення")`


---

# 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/uk/chatbot/mesendzheri/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.
