WTelegram. Get Document By Hash

Моя задача: получить файл из Telegram по его хэшу.

Сперва я загружаю файл, затем, отправляю его в сообщении в "Избранное" (то есть, к себе).

Далее, из полученного сообщения я получаю размер (который совпадает с размером файла, что я отправляю), mime_type (который тоже совпадает).

Передаю в метод для получения документа по хэшу файла. В метод передаю полученный размер файла, его тип и сам массив байт хэша. Массив байт - совпадает с хэшем sha256 (проверял на нескольких сайтах).

Но получаю всегда пустой документ, что означает, что по таким параметрам файл не найден.

Что я делаю не так?

Код ниже:

    string hash = HashHelper.ComputeHashSHA256(fileContent: fileContent, resetPosition: true);

    byte[] hashBytes = HashHelper.ComputeHashSHA256AsBytes(fileContent: fileContent, resetPosition: true);

    InputFileBase file = await _client.UploadFileAsync(stream: fileContent, filename: fileName);

    InputMediaUploadedDocument document = new(file, _mimeTypeDeterminant.Determine(fileName));

    Message message = await _client.SendMessageAsync(peer: new InputPeerUser(_client.User.ID, 0), text: string.Empty, media: document);

    if (message.media is MessageMediaDocument messageMediaDocument && messageMediaDocument.document is Document doc)
    {
        DocumentBase documentBase = await _client.Messages_GetDocumentByHash(sha256: hashBytes, size: doc.size, doc.mime_type);
    }

    return message;

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

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

Это невозможно. В поддержке ответили, что это привело бы к утечке. Данный функционал используется только для гивок.

→ Ссылка