MyTetra Share
Делитесь знаниями!
Скачать файл из сообщения
Время создания: 06.02.2020 22:42
Текстовые метки: c#, bots, telegram, telegram.bot
Раздел: Компьютер - C# - Telegramm
Запись: Kozlov-AE/Tetra/master/base/1581018163mzt7vbsxib/text.html на raw.githubusercontent.com

1. getFileметод представляет собой JSON объект (1,7 КБ отклик) , которые содержат данные для доступа к файлу изображения.

2. Также обратите внимание, что телеграмма создает массив изображений для любого изображения. первый элемент этого массива содержит небольшую миниатюру исходного изображения, а последний элемент массива содержит исходное изображение.

------------------------------------------------------------

Это старый пост. Но так как нет хорошей документации о том, как вы должны загружать файл в бот telegram, для всех, кто интересуется, вот как вы должны это сделать (один из способов):

DownloadFile(message.Photo[message.Photo.Length - 1].FileId, @"c:\photo.jpg");


в котором:

private static async void DownloadFile(string fileId, string path)

{

try

{

var file = await Bot.GetFileAsync(fileId);


using (var saveImageStream = new FileStream(path, FileMode.Create))

{

await file.FileStream.CopyToAsync(saveImageStream);

}

}

catch (Exception ex)

{

Console.WriteLine("Error downloading: " + ex.Message);

}

}


message.Photo[message.Photo.Length - 1] Является последним элементом в message.Photoмассиве, который содержит самые высокие данные качества изображения. Очевидно, что вы можете использовать DownloadFile для загрузки и другие виды файлов (например message.Document).

---------------------------------------------------

Я использую telegram.bot v14.10.0, но не могу найти file.FileStream, поэтому я нахожу альтернативный способ получить изображение из telegram. мой способ - использовать telegram api напрямую для этого случая.

var test = _myBot.GetFileAsync(e.Message.Photo[e.Message.Photo.Count() - 1].FileId);

var download_url = @"https://api.telegram.org/file/bot<token>/" + test.Result.FilePath;

using (WebClient client = new WebClient())

{

client.DownloadFile(new Uri(download_url), @"c:\temp\NewCompanyPicure.png");

}

//then do what you want with it

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования