How to send sticker using inline call of a Telegram bot? (InlineQuery, AnswerInlineQuery)

39 Views Asked by At

I'm making a simpl Telegram bot using Spring Boot. The goal is to make my bot send selected sticker using inline mode. It can show me the sticker to select, but sends InputTextMessageContent string instead.

 @Override
 public void onUpdateReceived(Update update) {
      if (update.hasInlineQuery()) {
            InlineQuery inlineQuery = update.getInlineQuery();

            InlineQueryResultCachedSticker resultSticker = new InlineQueryResultCachedSticker();
            resultSticker.setId(UUID.randomUUID().toString());
            resultSticker.setInputMessageContent(new InputTextMessageContent("sticker"));
            resultSticker.setStickerFileId(STICKER_FILE_ID);

            AnswerInlineQuery answerInlineQuery = new AnswerInlineQuery();
            answerInlineQuery.setInlineQueryId(inlineQuery.getId());
            answerInlineQuery.setCacheTime(1);
            answerInlineQuery.setResults(List.of(resultSticker));

            try {
                executeAsync(answerInlineQuery);
            } catch (TelegramApiException e) {
                System.out.println(e);
            }
      }
}

What class should I be using or what method should I call to send selected sticker insted of text from InputTextMessageContent?

Inline call, bot suggesting a sticker After choosing the sticker bot sends text from InputTextMessageContent

0

There are 0 best solutions below