Как создать собственного бота для Discord?

Как создать пользовательского бота в Discord, который будет отправлять сообщение в чат по сообщению команды? <br/> * Я хочу, чтобы бот находился в разделе "Мои приложения". <br/> <br/> <i>Пожалуйста, не делайте селф-бота!</i> <br/> <br/> В моем коде есть некоторые проблемы, что именно не так? <br/> <pre><code class="python">import disnake
from disnake.ext import commands

bot = commands.Bot(command_prefix='!', intents=disnake.Intents.all())

@bot.event
async def on_ready():
    print(f'We are logged in as {bot.user}')

@bot.slash_command(name="hello", description="Send a greeting")
async def hello(interaction: disnake.ApplicationCommandInteraction):
    await interaction.send("Hello, World!")


bot.run('токен')</code></pre>
  • 18 марта 2025 г. 10:44
Ответы на вопрос 2
Создание собственного бота для Discord — это интересный процесс! Чтобы помочь вам с кодом и понять, как правильно его настраивать, давайте рассмотрим шаги по созданию бота и исправим ошибки в коде.

### Шаги по созданию бота в Discord:

1. **Создание приложения Discord и бота:**
   - Перейдите на [Discord Developer Portal](https://discord.com/developers/applications).
   - Создайте новое приложение, нажав на кнопку "New Application".
   - Дайте имя вашему приложению.
   - Перейдите во вкладку "Bot" и нажмите "Add Bot". Подтвердите, если нужно.
   - После этого вы получите токен бота. Сохраните его, он вам понадобится.

2. **Настройка разрешений для бота:**
   - В разделе "OAuth2" выберите "URL Generator".
   - Убедитесь, что у вас включен `bot` и `applications.commands` в "SCOPES".
   - В разделе "BOT PERMISSIONS" выберите необходимые разрешения для вашего бота.
   - Сгенерируйте URL и используйте его для добавления бота на ваш сервер.

3. **Установка библиотеки для работы с Discord:**
   - Установите библиотеку `disnake`, если еще не сделали это:
     ```bash
     pip install disnake
     ```

4. **Исправление кода:**
   Вот исправленный код с учетом использования команд (обратите внимание на правильное использование для ответа на команды):

```python
import disnake
from disnake.ext import commands

# Создание нового бота с префиксом !
bot = commands.Bot(command_prefix='!', intents=disnake.Intents.all())

@bot.event
async def on_ready():
    print(f'We are logged in as {bot.user}')

# Создание команды slash
@bot.slash_command(name="hello", description="Send a greeting")
async def hello(interaction: disnake.ApplicationCommandInteraction):
    await interaction.response.send_message("Hello, World!")

# Запуск бота с токеном
bot.run('ВАШ_ТОКЕН')
```

### Примечания:

1. **`await interaction.response.send_message`** — это правильный способ отправить ответ на слеш-команду. Убедитесь, что вы используете `interaction.response` при обработке запросов от пользователя.

2. **Не храните токен в открытом доступе.** Замените `'ВАШ_ТОКЕН'` на реальный токен вашего бота. Храните его в безопасном месте и никогда не делитесь им публично.

3. **Проверьте возможность использования слеш-команд.** Для этого у вашего сервера должны быть разрешения на использование слеш-команд.

### Подсказки:

- Запустите вашего бота, и он должен появиться как онлайн на вашем сервере Discord.
- Вводите в чат команду `/hello`, чтобы получить ответ от бота "Hello, World!".

Если у вас есть дополнительные вопросы или возникнут ошибки, пожалуйста, дайте знать!
В коде все так, это базовый код бота. 
Чтобы бот можно было добавить в мои приложения нужно выставить галку в настройках на портале для разработчиков: Installation - Installation Contexts - User install
Похожие вопросы