@aquapendente

Почему не отправляется InlineKeyboardMarkup в telegrambots?

Всем привет. Сейчас пишу телеграм бота на джаве и столкнулся с проблемой: не отправляется инлайн-кравиатура. Есть несколько классов:
Markups (здесь хранятся все клавиатуры)
public class Markups {
    public InlineKeyboardMarkup aMarkup(){
        InlineKeyboardMarkup markupInline = new InlineKeyboardMarkup();
        List<List<InlineKeyboardButton>> rowsInline = new ArrayList<>();
        List<InlineKeyboardButton> rowInline = new ArrayList<>();
        rowInline.add(new InlineKeyboardButton().builder().text("Hello").callbackData("А").build());
        rowsInline.add(rowInline);
        markupInline.setKeyboard(rowsInline);

        return markupInline;
    }
}

Bot (главный класс)
public class Bot extends TelegramLongPollingBot {
    public void sendMsg(Message message, String text, InlineKeyboardMarkup inlineKeyboardMarkup) {
        SendMessage sendMessage = new SendMessage();
        sendMessage.enableMarkdown(true);

        sendMessage.setChatId(message.getChatId().toString());
        sendMessage.setReplyToMessageId(message.getMessageId());
        sendMessage.setText(text);
        sendMessage.setReplyMarkup(inlineKeyboardMarkup);

        try {
            execute(sendMessage);
        } catch (TelegramApiException e) {
            e.printStackTrace();
        }
    }
}

Я вызываю sendMsg так:
sendMsg(message, "Hello", markups.aMarkup());
Я распечатал sendMessage и да, клавиатура там есть:
spoiler
SendMessage(chatId=тут чат айди, text=Проверьте уведомление в игре, parseMode=Markdown, disableWebPagePreview=null, disableNotification=null, replyToMessageId=138, replyMarkup=InlineKeyboardMarkup(keyboard=[[InlineKeyboardButton(text=Привет, url=null, callbackData=А, callbackGame=null, switchInlineQuery=null, switchInlineQueryCurrentChat=null, pay=null, loginUrl=null, webApp=null)]]), entities=null, allowSendingWithoutReply=null, protectContent=null)

Сообщение приходит, а вот инлайн-клавиатура почему-то нет. В чем проблема?
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
@musador13
Во первых, насколько я помню(давно ботов писал) нужно передавать объект Update,
во вторых не совсем понятно что к чему обращается(где вызывается aMarkup()?).
в третьих лучше пользоваться SendMessage.builder()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы