Как создать приложение в Discord и получить API-ключи

Иван Корнев·26.04.2026·5 мин

Чтобы создать приложение в Discord и получить токены, перейдите в Discord Developer Portal, нажмите New Application, задайте имя. Затем во вкладке Bot нажмите Add Bot и скопируйте Token. Для OAuth-интеграций используйте Client ID и Client Secret из раздела OAuth2. Эти ключи необходимы для работы ботов, авторизации пользователей и взаимодействия с API Discord.

Ниже приведена подробная инструкция по каждому этапу настройки, включая меры безопасности, которые критически важны при работе с секретными ключами.

Оглавление

  1. Регистрация приложения (Application)
  2. Создание бота и получение токена
  3. Настройка OAuth2: Client ID и Secret
  4. Безопасное хранение ключей
  5. Частые ошибки
  6. FAQ

Регистрация приложения (Application) {#registration}

Любая интеграция с Discord (бот, сайт с авторизацией, оверлей) начинается с создания «Приложения» (Application). Это контейнер, который связывает ваш код с инфраструктурой Discord.

  1. Авторизуйтесь в Discord Developer Portal.
  2. В правом верхнем углу нажмите кнопку New Application.
  3. Введите название проекта (например, MySuperBot или SiteAuth). Название можно изменить позже.
  4. Примите условия использования и нажмите Create.

После создания вы попадете на страницу General Information. Здесь сразу обратите внимание на поле Application ID (или Client ID). Это публичный идентификатор вашего приложения. Он не является секретным и используется, например, для формирования ссылок приглашения бота на сервер.

Заполните поля Icon (иконка) и Description (описание). Если вы планируете публиковать бота в официальных каталогах или использовать Verified Bot статус, наличие качественной иконки и описания обязательно на ранних этапах.

Создание бота и получение токена {#bot-token}

Если ваша цель — создание чат-бота, нужно добавить к приложению специального пользователя-бота.

  1. В меню слева выберите раздел Bot.
  2. Нажмите кнопку Add Bot (справа, под заголовком "Build-A-Bot").
  3. Подтвердите действие, нажав Yes, do it!.

После этого появится секция Token. Это самый важный элемент для работы кода бота.

  • Нажмите Reset Token (если кнопка активна) или View Token / Copy.
  • Скопируйте длинную строку символов.

Bot Token — это пароль вашего бота. Любой, кто владеет этим токеном, может управлять ботом от вашего имени: читать сообщения, удалять каналы, банить пользователей. Никогда не показывайте его на скриншотах, стримах и не храните в открытом виде в коде.

Если вы случайно засветили токен, немедленно нажмите Reset Token в том же разделе. Старый токен станет недействительным, а новый нужно будет обновить в настройках вашего хостинга или локального файла .env.

Настройка OAuth2: Client ID и Secret {#oauth2-setup}

Для реализации входа через Discord (Login with Discord) или получения данных о серверах пользователя используются протоколы OAuth2. Ключи находятся в разделе OAuth2 (в левом меню).

Здесь вам понадобятся два значения:

  1. Client ID: Совпадает с Application ID. Используется для идентификации приложения при запросе авторизации.
  2. Client Secret: Секретный ключ, используемый на серверной части вашего приложения для обмена кода авторизации на токен доступа.

Настройка Redirect URIs

В разделе OAuth2 → General найдите поле Redirects. Сюда нужно добавить адреса, на которые Discord перенаправит пользователя после успешного входа.

  • Для локальной разработки часто используют: http://localhost:3000/callback (порт может отличаться).
  • Для продакшена: https://ваш-сайт.ru/api/discord/callback.

Без добавленного и подтвержденного Redirect URI авторизация работать не будет. Discord строго сверяет адрес возврата с тем, что указан в настройках.

Генерация ссылки для приглашения

Чтобы добавить бота на сервер, не обязательно писать код. Используйте встроенный генератор:

  1. Перейдите в OAuth2 → URL Generator.
  2. В блоке Scopes выберите bot.
  3. В появившемся ниже блоке Bot Permissions отметьте права, необходимые боту (например, Send Messages, Manage Roles).
  4. Скопируйте сгенерированную ссылку из поля Generated URL и откройте её в браузере.

Безопасное хранение ключей {#security}

Главная ошибка новичков — хардкодинг токенов прямо в исходный код (например, const token = "MTIz...";). Это приводит к утечкам при публикации кода на GitHub.

Используйте переменные окружения.

Пример структуры файла .env

Создайте файл .env в корне проекта (добавьте его в .gitignore!):

DISCORD_TOKEN=ваш_длинный_токен_бота
DISCORD_CLIENT_ID=ваш_client_id
DISCORD_CLIENT_SECRET=ваш_client_secret

Пример использования в коде (Node.js / Python)

JavaScript (discord.js):

require('dotenv').config();
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.login(process.env.DISCORD_TOKEN);

Python (discord.py):

import os
import discord
from dotenv import load_dotenv

load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')

client = discord.Client(intents=discord.Intents.default())
client.run(TOKEN)

Такой подход гарантирует, что даже если вы загрузите код в публичный репозиторий, злоумышленники не получат доступ к вашим ключам, так как файл .env игнорируется системой контроля версий.

Частые ошибки {#common-errors}

ОшибкаПричинаРешение
401 UnauthorizedНеверный токен бота.Проверьте, не скопировали ли вы лишние пробелы. Убедитесь, что используете именно Bot Token, а не Client Secret.
Invalid Form BodyОшибки в правах доступа (Intents).Включите нужные Privileged Gateway Intents (Presence, Server Members, Message Content) в разделе Bot в портале разработчика.
OAuth2 Redirect MismatchАдрес возврата не совпадает с настройками.Проверьте точное соответствие URL в коде и в разделе OAuth2 → General в портале.
Бот оффлайнТокен неверен или скрипт упал.Проверьте консоль запуска на наличие ошибок. Попробуйте сбросить токен и обновить его в конфиге.

Не путайте Client Secret и Bot Token. Они выглядят похоже (длинные строки), но имеют разное назначение. Token нужен библиотеке бота для подключения к шлюзу (Gateway). Secret нужен вашему веб-серверу для проверки подписи или обмена токенами OAuth2.

FAQ {#faq}

Где найти Application ID? Он находится на главной странице приложения (General Information) в самом верху, а также дублируется в разделе OAuth2 → General как Client ID.

Можно ли иметь несколько ботов в одном приложении? Нет, одно приложение = один бот-пользователь. Если вам нужно два разных бота, создайте два отдельных приложения в Developer Portal.

Что делать, если токен утекл? Срочно зайдите в раздел Bot и нажмите Reset Token. Старый токен перестанет работать мгновенно. Обновите новый токен в настройках вашего хостинга или локального окружения.

Нужен ли мне Client Secret для обычного чат-бота? Нет, если вы пишете только бота, который работает внутри Discord (отвечает на команды, модерация), вам нужен только Bot Token. Client Secret требуется только если вы делаете веб-сайт с авторизацией через Discord или взаимодействуете с API вне контекста бота.