我正在尝试从电报中下载一个文件。我正在使用TLSharp lib…
请检查我的代码:
var result = await client.GetContactsAsync();
var user = result.Users
.OfType<TLUser>()
.FirstOrDefault(x => x.Phone == "<phoneNumber>");
var inputPeer = new TLInputPeerUser() { UserId = user.Id };
var res = await client.SendRequestAsync<TLMessages>(new TLRequestGetHistory() { Peer = inputPeer });
var document = res.Messages
.OfType<TLMessage>()
.Where(m => m.Media != null)
.Select(m => m.Media)
.OfType<TLMessageMediaDocument>()
.Select(md => md.Document)
.OfType<TLDocument>()
.First();
var resFile = await client.GetFile(
new TLInputDocumentFileLocation()
{
AccessHash = document.AccessHash,
Id = document.Id,
Version = document.Version
},
(int)数学。战俘(2,Math.Ceiling (Math.Log(文档。
Size, 2) * 4);这段代码得到了这个异常:
FILEREF_UPGRADE_NEEDED
请问,有没有办法从对话中获取文件而不得到这个错误?
TLSharp似乎不再维护了。你可能想要切换到WTelegramClient,这是类似的,但更好。
然后你可以使用简化下载过程的helper方法:
using (var stream = File.Create(outputFilename))
await client.DownloadFileAsync(document, stream);