Как создать приложение в Discord и получить API-ключи
Чтобы создать приложение в Discord и получить токены, перейдите в Discord Developer Portal, нажмите New Application, задайте имя. Затем во вкладке Bot нажмите Add Bot и скопируйте Token. Для OAuth-интеграций используйте Client ID и Client Secret из раздела OAuth2. Эти ключи необходимы для работы ботов, авторизации пользователей и взаимодействия с API Discord.
Ниже приведена подробная инструкция по каждому этапу настройки, включая меры безопасности, которые критически важны при работе с секретными ключами.
Оглавление
Регистрация приложения (Application) {#registration}
Любая интеграция с Discord (бот, сайт с авторизацией, оверлей) начинается с создания «Приложения» (Application). Это контейнер, который связывает ваш код с инфраструктурой Discord.
- Авторизуйтесь в Discord Developer Portal.
- В правом верхнем углу нажмите кнопку New Application.
- Введите название проекта (например,
MySuperBotилиSiteAuth). Название можно изменить позже. - Примите условия использования и нажмите Create.
После создания вы попадете на страницу General Information. Здесь сразу обратите внимание на поле Application ID (или Client ID). Это публичный идентификатор вашего приложения. Он не является секретным и используется, например, для формирования ссылок приглашения бота на сервер.
Заполните поля Icon (иконка) и Description (описание). Если вы планируете публиковать бота в официальных каталогах или использовать Verified Bot статус, наличие качественной иконки и описания обязательно на ранних этапах.
Создание бота и получение токена {#bot-token}
Если ваша цель — создание чат-бота, нужно добавить к приложению специального пользователя-бота.
- В меню слева выберите раздел Bot.
- Нажмите кнопку Add Bot (справа, под заголовком "Build-A-Bot").
- Подтвердите действие, нажав 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 (в левом меню).
Здесь вам понадобятся два значения:
- Client ID: Совпадает с Application ID. Используется для идентификации приложения при запросе авторизации.
- Client Secret: Секретный ключ, используемый на серверной части вашего приложения для обмена кода авторизации на токен доступа.
Настройка Redirect URIs
В разделе OAuth2 → General найдите поле Redirects. Сюда нужно добавить адреса, на которые Discord перенаправит пользователя после успешного входа.
- Для локальной разработки часто используют:
http://localhost:3000/callback(порт может отличаться). - Для продакшена:
https://ваш-сайт.ru/api/discord/callback.
Без добавленного и подтвержденного Redirect URI авторизация работать не будет. Discord строго сверяет адрес возврата с тем, что указан в настройках.
Генерация ссылки для приглашения
Чтобы добавить бота на сервер, не обязательно писать код. Используйте встроенный генератор:
- Перейдите в OAuth2 → URL Generator.
- В блоке Scopes выберите
bot. - В появившемся ниже блоке Bot Permissions отметьте права, необходимые боту (например,
Send Messages,Manage Roles). - Скопируйте сгенерированную ссылку из поля 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 вне контекста бота.