Discord бот отправляет сообщения только в лс, но не работает на серверах

Бот работает в личных сообщениях исправно, но абсолютно ни при каких условиях не работает на каналах. Все права выданы при приглашении и даже дополнительно на самом канале, никаких ограничений нет и не важно какой канал.

Помогите решить данную проблему, у меня не вышло.

Пример кода:

import discord
import json
import requests
from discord.ext import commands

bot = commands.Bot(command_prefix = '/')

@bot.event

async def on_ready():
    print('Я готов')

@bot.command()

async def hello(ctx):
    await ctx.send('Test10')


@bot.command()

async def nya(ctx):
    await ctx.send('Hello there')

@bot.command()
async def hello2(ctx):
    author = ctx.message.author

    await ctx.send(f'Hello, {author.mention}!')

@bot.command()
async def fox(ctx):
    response = requests.get('https://some-random-api.ml/img/fox') # Get-запрос
    json_data = json.loads(response.text) # Извлекаем JSON

    embed = discord.Embed(color = 0xff9900, title = 'Random Fox') # Создание Embed'a
    embed.set_image(url = json_data['link']) # Устанавливаем картинку Embed'a
    await ctx.send(embed = embed) # Отправляем Embed

bot.run('Здесь токен')

Ответы (1 шт):

Автор решения: mrBars1k

Вверху, после импортов вписываете:

intents = discord.Intents.default()
intents.message_content = True

Затем идёте в панель управления ботом на https://discord.com/developers/applications/ и заходите в раздел Bot.

Там ищите в категории MESSAGE CONTENT INTENT параметр Will be required for your bot to receive message content in most messages и ставьте галочку.

Всё заработает.

После перехода модуля discord.py на API v10 возникла такая проблема.

Если вы это читаете через какое-то время, после этого решения, то может уже не работать. Дискорд через два дня закрывает доступ к большинству возможностей ботов и чтения содержания сообщений на серверах для не верифицированных ботов. А верификация происходит в ручном режиме и для полезных, не вредных и крутых ботов.

→ Ссылка