Створення бота
Крок 1. Створіть застосунок (перейдіть за посиланням).
Крок 2. Додайте бота (натисніть кнопку "Add Bot").

Крок 2.1. У розділі Installation виберіть Install Link → None.

Крок 2.2. У розділі Bot вимкніть Public Bot, потім увімкніть наступні Intents:
- Message Content Intent
- Server Members Intent
Ви також можете увімкнути Presence Intent для подальшого використання.


Крок 3. Отримайте токен (Reset Token).
Крок 4. Додайте бота на сервер:
- Перейдіть до OAuth2 → URL Generator.
- У Scopes виберіть bot.
- У Bot Permissions оберіть Send Messages, Read Message History та будь-які інші необхідні дозволи.
Потім відкрийте згенероване посилання, виберіть сервер, на який ви хочете додати бота, і підтвердьте авторизацію.


Щоб отримати повний вебхук від Discord, просто призначте будь-яке значення змінній save_webhook.
Якщо змінна встановлена, вебхук буде збережено в discord_webhook.
Підключення бота Discord у MaviBot
Тепер перейдіть до розділу "Messengers" у вашому проєкті в MaviBot:

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

Натисніть кнопку Done.
Функції калькулятора
Відповісти на повідомлення
discord_reply_to_message(message_id, text) - Ця функція використовується для відповіді на повідомлення.
| Параметри | Опис |
|---|---|
| ! message_id | ID повідомлення, на яке потрібно відповісти. |
| ! text | Текст повідомлення-відповіді. |
Видалити повідомлення
discord_delete_message(message_id) - Ця функція використовується для видалення повідомлення.
| Параметри | Опис |
|---|---|
| ! message_id | ID повідомлення для видалення. |
Редагувати повідомлення
discord_edit_message(message_id, text) - Ця функція використовується для редагування повідомлення.
| Параметри | Опис |
|---|---|
| ! message_id | ID повідомлення для редагування. |
| ! text | Новий текст повідомлення. |
Закріпити повідомлення
discord_pin_message(message_id) - Ця функція використовується для закріплення повідомлення.
| Параметри | Опис |
|---|---|
| ! message_id | ID повідомлення для закріплення. |
Відкріпити повідомлення
discord_unpin_message(message_id) - Ця функція використовується для відкріплення повідомлення.
| Параметри | Опис |
|---|---|
| ! message_id | ID повідомлення для відкріплення. |
Надіслати реакцію на повідомлення
discord_send_reaction(message_id, reaction) - Ця функція використовується для надсилання реакції на повідомлення.
| Параметри | Опис |
|---|---|
| ! message_id | ID повідомлення, на яке потрібно надіслати реакцію. |
| ! reaction | Реакція для надсилання. Ви можете вказати один емодзі (наприклад, ❤️) або ID спеціального емодзі на сервері. Інформацію про те, як отримати ID спеціального емодзі, наведено нижче. |
Видалити реакцію з повідомлення в каналі
discord_delete_reaction(message_id, reaction, user_id) - Ця функція використовується для видалення реакції з повідомлення в каналі.
| Параметри | Опис |
|---|---|
| ! message_id | ID повідомлення, з якого потрібно видалити реакцію. |
| ! reaction | Реакція для видалення. Ви можете вказати один емодзі (наприклад, ❤️) або ID спеціального емодзі на сервері. Інформацію про те, як отримати ID спеціального емодзі, наведено нижче. |
| user_id | ID користувача, чию реакцію ви хочете видалити. Цей параметр є необов'язковим, якщо ви хочете видалити реакцію поточного бота. |
Функції Discord
Наступні функції дозволяють керувати серверами Discord, учасниками, каналами, ролями, повідомленнями та запрошеннями.
Модерація учасників
Забанити учасника
discord_ban_member(user_id, delete_message_seconds) - Ця функція використовується для забанення учасника на сервері Discord.
| Параметри | Опис |
|---|---|
| ! user_id | ID користувача Discord учасника, якого потрібно забанити. |
| delete_message_seconds | (Необов'язково) Видаляє попередні повідомлення учасника за вказану кількість секунд до бану. Встановіть 0, щоб зберегти всі повідомлення. |
Розбанити учасника
discord_unban_member(user_id) - Ця функція використовується для зняття бану з учасника.
| Параметри | Опис |
|---|---|
| ! user_id | ID користувача Discord учасника, якого потрібно розбанити. |
Вигнати учасника
discord_kick_member(user_id) - Ця функція використовується для видалення учасника з сервера без бану.
| Параметри | Опис |
|---|---|
| ! user_id | ID користувача Discord учасника, якого потрібно видалити. |
Вигнаний учасник може знову приєднатися до сервера, використовуючи дійсне посилання-запрошення.
Тайм-аут для учасника
discord_timeout_member(user_id, seconds) - Ця функція використовується для встановлення тайм-ауту (заглушення) учасника.
| Параметри | Опис |
|---|---|
| ! user_id | ID користувача Discord учасника. |
| ! seconds | Тривалість тайм-ауту в секундах. |
Зняти тайм-аут
discord_remove_timeout(user_id) - Ця функція використовується для зняття тайм-ауту учасника до закінчення його терміну.
| Параметри | Опис |
|---|---|
| ! user_id | ID користувача Discord учасника. |
Масове видалення повідомлень
discord_bulk_delete_messages(channel_id, message_ids) - Ця функція використовується для видалення кількох повідомлень з каналу.
| Параметри | Опис |
|---|---|
| ! channel_id | ID каналу Discord. |
| ! message_ids | Список ID повідомлень для видалення. |
Повідомлення
Надіслати повідомлення
discord_send_message(channel_id, text) - Ця функція використовується для надсилання повідомлення в канал Discord.
| Параметри | Опис |
|---|---|
| ! channel_id | ID каналу Discord. |
| ! text | Текст повідомлення. |
Отримати повідомлення
discord_get_message(channel_id, message_id) - Ця функція використовується для отримання інформації про повідомлення.
| Параметри | Опис |
|---|---|
| ! channel_id | ID каналу Discord. |
| ! message_id | ID повідомлення. |
Функція повертає:
- Вміст повідомлення
- Інформацію про автора
- Вкладення
Надіслати пряме повідомлення
discord_send_dm(user_id, text) - Ця функція використовується для надсилання прямого повідомлення учаснику сервера.
| Параметри | Опис |
|---|---|
| ! user_id | ID користувача Discord. |
| ! text | Текст повідомлення. |
Ролі
Додати роль
discord_add_role(user_id, role_id) - Ця функція використовується для призначення ролі учаснику.
| Параметри | Опис |
|---|---|
| ! user_id | ID користувача Discord. |
| ! role_id | ID ролі Discord. |
Видалити роль
discord_remove_role(user_id, role_id) - Ця функція використовується для видалення ролі в учасника.
| Параметри | Опис |
|---|---|
| ! user_id | ID користувача Discord. |
| ! role_id | ID ролі Discord. |
Змінити нікнейм учасника
discord_set_nickname(user_id, nickname) - Ця функція використовується для зміни нікнейму учасника на сервері.
| Параметри | Опис |
|---|---|
| ! user_id | ID користувача Discord. |
| ! nickname | Новий нікнейм. |
Отримати ролі сервера
discord_get_roles() - Ця функція використовується для отримання списку ролей сервера.
Функція повертає:
- ID ролі
- Назву ролі
Учасники
Отримати інформацію про учасника
discord_get_member(user_id) - Ця функція використовується для отримання інформації про учасника сервера.
| Параметри | Опис |
|---|---|
| ! user_id | ID користувача Discord. |
Функція повертає:
- Ролі учасника
- Нікнейм на сервері
- Дату приєднання
- Дозволи
Канали
Створити канал
discord_create_channel(name, type, parent_id, permission_overwrites) - Ця функція використовується для створення нового каналу Discord.
| Параметри | Опис |
|---|---|
| ! name | Назва каналу. |
| ! type | Тип каналу (наприклад, текстовий або голосовий). |
| parent_id | ID категорії, де буде створено канал. |
| permission_overwrites | Налаштування дозволів каналу, які визначають, які користувачі або ролі можуть отримати доступ до каналу. |
Видалити канал
discord_delete_channel(channel_id) - Ця функція використовується для видалення каналу Discord.
| Параметри | Опис |
|---|---|
| ! channel_id | ID каналу Discord. |
Встановити дозволи каналу
discord_set_channel_permission(channel_id, target_id, allow, deny) - Ця функція використовується для налаштування дозволів каналу для користувача або ролі.
| Параметри | Опис |
|---|---|
| ! channel_id | ID каналу Discord. |
| ! target_id | ID користувача або ID ролі, чиї дозволи будуть змінені. |
| ! allow | Дозволи, які надаються. |
| ! deny | Дозволи, які забороняються. |
Запрошення
Створити запрошення
discord_create_invite(channel_id, max_age, max_uses) — ця функція використовується для створення посилання-запрошення.
| Параметри | Опис |
|---|---|
| ! channel_id | ID каналу Discord. |
| max_age | Час життя запрошення в секундах. Використовуйте 0 для безстрокового запрошення. |
| max_uses | Максимальна кількість використань. Використовуйте 0 для необмеженої кількості використань. |
Отримати запрошення сервера
discord_get_invites() — ця функція використовується для отримання всіх посилань-запрошень сервера.
Функція повертає:
- URL-адресу запрошення
- Кількість використань
- Час життя, що залишився (якщо застосовно)
Події вебхука
Наступні події Discord можна пересилати до чат-потоку:
- Учасник приєднався до сервера
- Учасник покинув сервер
- Учасника було вигнано
- Учасника було забанено
- Учасника було розбанено
- Ролі учасника змінено
- Повідомлення відредаговано
- Повідомлення видалено
- Додано реакцію
- Видалено реакцію
- Виконано слеш-команду
- Натиснуто кнопку
Корисне навантаження вебхука
Дані вебхука доступні в:
discord_webhook["data"]
| Поле | Опис |
|---|---|
| author_id | ID користувача Discord, який написав повідомлення. |
| username | Ім'я користувача Discord. |
| nickname | Нікнейм на сервері. |
| channel_id | ID каналу Discord. |
| guild_id | ID сервера Discord. |
| message_id | ID повідомлення Discord. |
| content | Текст повідомлення. |
| roles | Список ID ролей учасника. |
| is_admin | Вказує, чи має учасник права адміністратора. |
Зворотні виклики
Коли користувач надсилає реакцію, у чат надходить зворотний виклик у такому форматі:
new_like ❤️ uid413984787162726410

Де uid413984787162726410 — це ID користувача, який надіслав реакцію.
Як отримати ID спеціального емодзі
Якщо ви надсилаєте спеціальну реакцію на повідомлення в каналі Discord, буде отримано зворотний виклик у такому форматі:
new_like beer:1479419477396291696 uid413984787162726410

Де beer:1479419477396291696 — це ID реакції. Ви можете скопіювати його для використання у функціях, пов'язаних з реакціями.
Як отримати ID повідомлення
Ви можете отримати ID повідомлення клієнта з вебхука, якщо увімкнено save_webhook. Приклад:
data = discord_webhook["data"]
msg_id = data["id"]
result = discord_reply_to_message(msg_id, "Це відповідь на повідомлення")
Додаткові зворотні виклики
Окрім new_like, доступні такі зворотні виклики:
| Зворотний виклик | Опис |
|---|---|
new_like {emoji} uid{user_id} |
Користувач додав реакцію до повідомлення. |
reaction_remove {emoji} uid{user_id} |
Користувач видалив реакцію з повідомлення. |
message_delete mid{message_id} |
Повідомлення було видалено. |
message_edit mid{message_id} |
Повідомлення було відредаговано. Оновлений текст повідомлення доступний у даних вебхука. |
member_join uid{user_id} |
Учасник приєднався до сервера. |
member_leave uid{user_id} |
Учасник покинув сервер. |
member_update uid{user_id} |
Інформацію учасника (наприклад, ролі або нікнейм) було оновлено. |
member_ban uid{user_id} |
Учасника було забанено на сервері. |
member_unban uid{user_id} |
Учасника було розбанено на сервері. |
Змінні зворотних викликів
Для узгодженості з існуючим форматом подій Discord ідентифікатори користувачів і повідомлень використовують історичні префікси:
- ID користувачів повертаються як
uid{user_id}. - ID повідомлень повертаються як
mid{message_id}.
Наступні змінні також використовують ці ідентифікатори з префіксами:
message_frominternal_iddiscord_webhook["data"]