Задать вопрос
@xtrip
я Новичок

Telegram Bot | Почему update.hasCallbackQuery() не работает?

Решил я изучать Telegram Bot Api, и в ходе моего изучения я столкнулся с проблемой, ответа на которой не смог найти в интернете. else if(update.hasCallbackQuery()) не работает, при нажатии на кнопку ничего не происходит. Я решил найти проблему, попробовав создать url кнопку , которая просто переводит по ссылке - она работает, поэтому проблему именно с update.hasCallbackQuery(), дальше код он просто не пропускает. Помогите пожалуйста, уже 3 часа долблюсь с этой проблемой
@Override
    public void onUpdateReceived(Update update) {


            if(update.hasMessage() && !update.getMessage().getText().isEmpty()){

                if(update.getMessage().getText().equals("/start")){
                    SendMessage sendMessage = new SendMessage();
                    sendMessage.setChatId(update.getMessage().getChatId());
                    sendMessage.setText("Нажмите на кнопку");
                    InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup();
                    List<List<InlineKeyboardButton>> rowsLine = new ArrayList<>();
                    List<InlineKeyboardButton> rowLine = new ArrayList<>();
                    InlineKeyboardButton inlineKeyboardButton1 = InlineKeyboardButton.builder()
                            .text("BI")
                            .callbackData("2")
                            .build();
                    rowLine.add(inlineKeyboardButton1);
                    rowsLine.add(rowLine);
                    inlineKeyboardMarkup.setKeyboard(rowsLine);
                    sendMessage.setReplyMarkup(inlineKeyboardMarkup);
                    try{
                        execute(sendMessage);


                    }
                    catch(TelegramApiException e){
                        e.printStackTrace();
                    }
                }
                else if(update.hasCallbackQuery()){
                    CallbackQuery callbackQuery = update.getCallbackQuery();
                    Long chatId = callbackQuery.getMessage().getChat().getId();
                    String data = callbackQuery.getData();
                    SendMessage sendMessage = new SendMessage();
                    sendMessage.setChatId(chatId);
                    if(data.equals("2")){
                        sendMessage.setText("Ok");
                    }
                    try{
                        execute(sendMessage);
                    }
                    catch (TelegramApiException e){
                        e.printStackTrace();
                    }
                }
            }
    }
  • Вопрос задан
  • 266 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы