2015-10-12 4 views
2

Я пытаюсь загрузить файл (изображение) с помощью моего бота, но когда я загружаю изображение (это успешно) после использования getFile, получившееся изображение очень мало 1.7 kb, а оно больше чем на моем мобильном телефонеTelegram Bot скачать файл с изображениями

+5

Можете ли вы показать нам некоторые из ваших работ? Также для вашего прочтения: http://stackoverflow.com/help/how-to-ask – Pogrindis

ответ

3
  1. getFile Метод представляет собой объект JSON (1.7 KB ответ), которые содержат данные для доступа к файл изображения.

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

2

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

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).