Перейти к содержимому

Как исправить ошибку «Used Disallowed Intents» в Discord.js v14

Если при запуске вашего бота на Discord.js v14 вы столкнулись с ошибкой "DisallowedIntents: Privileged intent provided is not enabled", не паникуйте. Восстановите работу бота за 2 шага, настроив Privileged Gateway Intents в Discord Developer Portal и исправив код.

Команда VeyroBot Обновлено:

Эта статья автоматически переведена с турецкого оригинала. Читать оригинал на турецком

Как исправить ошибку «Used Disallowed Intents» в Discord.js v14
В этой статье
  1. Краткий ответ
  2. Что это за ошибка?
  3. 3 основных разрешения (Privileged Gateway Intents), вызывающих ошибку
  4. Пошаговое руководство по устранению
  5. Тонкая настройка со стороны кода
  6. Часто задаваемые вопросы

Краткий ответ

Эта ошибка возникает, когда в вашем коде запрашивается привилегированный (privileged) интент, который вы не предоставили боту в Discord Developer Portal. Решение: зайдите в раздел Privileged Gateway Intents на вкладке Bot вашего приложения в Developer Portal, включите ключи, которые использует ваш код (Presence, Server Members или Message Content), сохраните изменения и перезапустите бота.

Что это за ошибка?

Как исправить ошибку Discord.js v14 "Used Disallowed Intents"?

При разработке бота на Node.js и Discord.js v14 одной из самых неприятных начальных ошибок является следующая:

[DisallowedIntents]: Privileged intent provided is not enabled or whitelisted.
    at WebSocketManager.connect (node_modules/@discordjs/ws/...)
    code: 'DisallowedIntents'

Эта ошибка обычно возникает в тех случаях, когда в определении клиента (Client) бота вы запрашиваете привилегированные (privileged) разрешения, но не предоставили их боту через Discord Developer Portal. Решение довольно простое.

3 основных разрешения (Privileged Gateway Intents), вызывающих ошибку

По соображениям конфиденциальности и производительности Discord по умолчанию блокирует доступ к определенным данным:

  1. Presence Intent: Информация о деятельности и статусе пользователей (в сети/не в сети).
  2. Server Members Intent: Доступ к списку всех участников сервера и событиям присоединения новых участников (guildMemberAdd).
  3. Message Content Intent: Права на чтение содержимого сообщений в каналах, где бот не упоминается напрямую.

Если вы указали один из этих интентов в своем коде, обязательно включите соответствующие переключатели и на панели Discord.

Пошаговое руководство по устранению

1. Войдите в Discord Developer Portal: Перейдите по адресу Discord Developer Portal и авторизуйтесь под своей учетной записью разработчика бота.

2. Выберите приложение вашего бота: Кликните в списке по проекту вашего бота, выдающего ошибку, после чего перейдите на вкладку "Bot" в левом меню.

3. Активируйте привилегированные разрешения (Privileged Intents): Для неверифицированных ботов с количеством серверов менее 100 изменения применяются мгновенно. Прокрутите страницу вниз и найдите раздел Privileged Gateway Intents. Включите разрешения, которые вы запрашиваете в своем коде (или все три, если вы находитесь на стадии разработки):

  • Presence Intent
  • Server Members Intent
  • Message Content Intent

4. Сохраните изменения и перезапустите бота: Нажмите зеленую кнопку "Save Changes" внизу страницы. Вернитесь в терминал и снова запустите бота с помощью команды node index.js.

Раздел Privileged Gateway Intents в Discord Developer Portal: включены переключатели Presence Intent, Server Members Intent и Message Content Intent.

Переключатели Privileged Gateway Intents в Developer Portal. Источник: Discord.py - Read the Docs

Тонкая настройка со стороны кода

Если вы создаете современного бота, который не читает содержимое сообщений или работает исключительно на слеш-командах (/), вы можете повысить скорость запуска бота, не запрашивая лишние интенты:

JavaScript

const { Client, GatewayIntentBits } = require('discord.js');

// Добавляйте только те интенты, которые действительно необходимы
const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        // Добавляйте только если вы включили это на панели и вам нужно читать текст сообщений:
        GatewayIntentBits.MessageContent 
    ]
});

client.login(process.env.DISCORD_TOKEN);
Важный совет: Когда ваш бот достигнет 100 или более серверов, для включения этих привилегированных разрешений потребуется верификация Discord (Bot Verification).

Часто задаваемые вопросы

Какие интенты являются привилегированными?

Presence Intent, Server Members Intent и Message Content Intent. Если вы указали хотя бы один из них в своем коде, его также необходимо включить в Developer Portal.

Нужен ли интент Message Content, если я использую только слеш-команды?

В боте, который не читает содержимое сообщений или работает исключительно со слеш-командами (/), лучше не запрашивать лишние интенты; это также увеличивает скорость запуска бота.

Что произойдет, если мой бот достигнет 100 серверов?

При достижении 100 и более серверов для включения привилегированных разрешений потребуется верификация Discord (Bot Verification). Для неверифицированных ботов с количеством серверов менее 100 переключатели работают мгновенно.

Последнее обновление: 20 сентября 2026 г. Шаги описаны в соответствии с интерфейсом Discord Developer Portal на момент написания статьи; интерфейс может измениться. Для получения дополнительной информации о разрешениях бота вы можете ознакомиться с руководством по разрешениям ботов Discord и руководством по ошибкам разрешений.

Добавить бота на сервер Бесплатно · ~30 с