FILEREF_UPGRADE_NEEDED使用TLSharp的GetFile函数



我正在尝试从电报中下载一个文件。我正在使用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);