#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 очевидных промаха
- метод get_channel требует параметра, который является идентификатором канала. https://discordpy.readthedocs.io/en/latest/api.html#discord .Guild.get_channel
- Бот, скорее всего, не зарегистрирован как клиент.для запуска () также требуется параметр токена. 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