Ошибка атрибута: объект ‘NoneType’ не имеет атрибута ‘отправить’ discord bot

#python

#python

Вопрос:

Мне нужна помощь, чтобы заставить моего бота работать

 # Import Discord Package
import discord

# Client (our bot)
client = discord.Client()

@client.event
async def on_ready():
    # DO STUFF....
    general_channel = client.get_channel()

    await general_channel.send('yo')

# Run the client on the server
client.run('')
 

когда я запускаю его, я получаю AttributeError: объект ‘NoneType’ не имеет атрибута ‘send’ в терминале, и в discord ничего не отображается, если бы вы могли это исправить, это было бы здорово

Ответ №1:

Распространенными причинами, по которым get_ возвращает None, являются: а) Идентификатор канала не найден б) бот не подключен в) метод get_ вызывается перед запуском бота.

В вашем случае есть 2 очевидных промаха

  1. метод get_channel требует параметра, который является идентификатором канала. https://discordpy.readthedocs.io/en/latest/api.html#discord .Guild.get_channel
  2. Бот, скорее всего, не зарегистрирован как клиент.для запуска () также требуется параметр токена. client.run(‘your_token’)

Комментарии:

1. я удалил идентификатор сервера и токен, чтобы мне не пришлось сбрасывать токен бота

2. Круто, допустимым параметром для идентификатора канала является значение int. get_channel(‘444’) недопустим, в то время как get_channel(444) допустим

3. позвольте мне показать вам снимок экрана во втором посте, чтобы вы могли понять мою ошибку, потому что я думаю, что это говорит мне идти одним путем, а вы говорите мне идти другим

4. [введите описание изображения здесь][1] [1]: i.stack.imgur.com/LUDpD.jpg это моя ошибка в терминале

5. Когда это «general_channel = client.get_channel ()» было оценено, возвращаемое значение было None . Поэтому я хотел, чтобы вы проверили, передали ли вы правильный тип данных в функцию get channel. Возможно, вы передали правильный идентификатор канала, но не в правильном типе, ожидаемом функцией, которая является INT