Как получить личную переписку с пользователем вне гильдии по id переписки discord py
Мне нужно получить сообщение в переписке с пользователем, которая уже существует, но я столкнулся с проблемой, что не могу получить переписку как объект по id, хотя id верно
Ошибка: 'NoneType' object has no attribute 'fetch_message'
async def updatePost(userId, channelId, messageId):
print("Проверка")
user = await bot.fetch_user(userId)
print(channelId)
channel = bot.get_channel(int(channelId))
print(channel)
print(messageId)
message = await channel.fetch_message(messageId)
Я уже пробовал вводить id как константу, но ошибка всё та же: 'NoneType' object has no attribute 'fetch_message'
Ответы (1 шт):
Автор решения: Kaito Hitsugaya
→ Ссылка
Решение задачи заключается в том, чтоб получить dm_channel как объект, нужно сначала отправить какое-то сообщение пользователю, без этого как я понимаю канал закрыл и поэтому он не даёт доступа
async def updatePost(userId, channelId, messageId):
user = await bot.fetch_user(userId)
messageUp = await user.send("Обновление данных")
channel = user.dm_channel
print(channel)
message = await channel.fetch_message(messageId)
await messageUp.delete()
if user.id == 485463652040704000:
my_view = ViewAdmin(user=user)
else:
my_view = ViewClient(user=user)
await message.edit(view=my_view)