Используя Telegram Bots API, можно ответить на встроенный запрос с видео-заметкой.
Я использую эту библиотеку
Я пробовал следующее:
List<InlineQueryResult> results = new ArrayList<>();
InlineQueryResultCachedVideo cv = new InlineQueryResultCachedVideo();
cv.setVideoFileId(d.getFileId());
cv.setId("" + i);
cv.setTitle("\uD83C\uDFAC " + d.getName());
cv.setDescription("\uD83D\uDCCE " + d.getMimeType().getName());
cv.setCaption(d.getName());
results.add(cv);
AnswerInlineQuery answer = new AnswerInlineQuery();
answer.setInlineQueryId(inlineQuery.getId());
answer.setResults(results);
try {
bot.execute(answer);
} catch (TelegramApiException e) {
e.printStackTrace();
}
Однако бросает:
org.telegram.telegrambots.exceptions.TelegramApiRequestException:
Ошибка ответа на встроенный запрос: [400] Неверный запрос: тип файла не соответствует
в
org.telegram.telegrambots.api.methods.AnswerInlineQuery.deserializeResponse (AnswerInlineQuery.java:161)
в
org.telegram.telegrambots.api.methods.AnswerInlineQuery.deserializeResponse (AnswerInlineQuery.java:22)
в
org.telegram.telegrambots.bots.DefaultAbsSender.sendApiMethod (DefaultAbsSender.java:689)
в
org.telegram.telegrambots.bots.AbsSender.execute (AbsSender.java:53)
в
uz.tarv.file_saver.telegram.contorllers.InlineQueryController.handleUpdate (InlineQueryController.java:94)
на uz.tarv.file_saver.telegram.MyBot.onUpdateReceived (MyBot.java:86)
в java.util.ArrayList.forEach (ArrayList.java:1249) в
org.telegram.telegrambots.generics.LongPollingBot.onUpdatesReceived (LongPollingBot.java:27)
в
org.telegram.telegrambots.updatesreceivers.DefaultBotSession $ HandlerThread.run (DefaultBotSession.java:309)