Как получить личную переписку с пользователем вне гильдии по 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)
→ Ссылка