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 шт):
Это невозможно. В поддержке ответили, что это привело бы к утечке. Данный функционал используется только для гивок.