Как скачать полученное фото в TelegramBot?

191
07 июня 2018, 07:10

Есть задача скачать фото которое было отправлено боту. Пытаюсь делать и в результате появились вопросы. Вот так скачиваю:

if (update.hasMessage() && update.getMessage().hasPhoto())
     {
    long chat_id = update.getMessage().getChatId();
    List<PhotoSize> photos = update.getMessage().getPhoto();
    String f_id = photos.stream()
            .sorted(Comparator.comparing(PhotoSize::getFileSize).reversed())
            .findFirst()
            .orElse(null).getFileId();

    GetFile getFileRequest = new GetFile();
    getFileRequest.setFileId(update.getMessage().getPhoto().get(0).getFileId());
    org.telegram.telegrambots.api.objects.File file = getFile(getFileRequest);
    File f_path = new File("https://api.telegram.org/file/bot"+getBotToken()+"/"+file.getFilePath());
    String caption = "file_id: " + f_id + "\nfile_path: " + f_path;
    SendPhoto msg = new SendPhoto()
            .setChatId(chat_id)
            .setPhoto(f_id)
            .setCaption(caption);
    try {
        sendPhoto(msg);
    } catch (TelegramApiException e) {
        e.printStackTrace();
    }
    }

И появились вопросы: 1.Что в этом коде можно убрать? На мой взгляд это какой-то быдлокод получился. 2. Что использовать вместо

getFile(getFileRequest);

т.к он объявлен устаревшим. 3. Почему переходя по полученной ссылке, я скачиваю фото которое уменьшено? Т.е отправил 800*600, а скачиваешь чуть ли не аватарку. Но отправляет обратно нормальный размер. Может кто-то поделится нормальным рабочим кодом?

READ ALSO
Разбить List на List по 10 элементов

Разбить List на List по 10 элементов

Есть листС каждым элементом я в отдельном потоке провожу работу

201
Ошибка в запросе или базе данных

Ошибка в запросе или базе данных

Ошибка происходит в запросе

296
Как считать данные из таблицы TableView.Java

Как считать данные из таблицы TableView.Java

Как считать данные которые только что были отредактированы пользователем из таблицы TableView и сохранитьJava

181
Как настроить maven

Как настроить maven

Пишу web приложение и деплою его на локальный сервер(Tomcat 9)Дело в том, что при любом малейшем изменении кода, даже на jsp странице мне приходится...

183