Есть задача скачать фото которое было отправлено боту. Пытаюсь делать и в результате появились вопросы. Вот так скачиваю:
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, а скачиваешь чуть ли не аватарку. Но отправляет обратно нормальный размер. Может кто-то поделится нормальным рабочим кодом?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости