Как создать главное меню телеграммы с JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Как создать главное меню телеграммы с Java

Сообщение Anonymous »

Я изучаю, как использовать API Telegram. классы.

Код: Выделить всё

private void buildInlineMenu(SendMessage.SendMessageBuilder builder, ChatResponse chatResponse) {
if (!chatResponse.getInlineMenus().isEmpty()) {
List inlineButtons = new ArrayList();
chatResponse.getInlineMenus().forEach(menu -> {
var next = InlineKeyboardButton.builder()
.text(menu.getCaption())
.callbackData(menu.getCommand())
.build();
inlineButtons.add(next);
});

InlineKeyboardMarkup markup = InlineKeyboardMarkup
.builder()
.keyboardRow(inlineButtons)
.build();

builder.replyMarkup(markup);
}
}
Ссылка на Image
мой код, который создает клавиатуру:

Код: Выделить всё

private void buildKeyboard(SendMessage.SendMessageBuilder builder, ChatResponse chatResponse) {
if (!chatResponse.getKeyboards().isEmpty()) {
List keyboard = new ArrayList();
chatResponse.getKeyboards().forEach(b -> {
String[] buttons = b.getCaption().split(";");
KeyboardRow keyboardRow = new KeyboardRow();
Arrays.stream(buttons).forEach(button -> {
keyboardRow.add(new KeyboardButton(button));
});
keyboard.add(keyboardRow);
});

ReplyKeyboardMarkup markup = new ReplyKeyboardMarkup();
markup.setSelective(true);
markup.setResizeKeyboard(true);
markup.setOneTimeKeyboard(false);
markup.setKeyboard(keyboard);

builder.replyMarkup(markup);
}
}
ссылка на Image
Как я их называю:
(1)

Код: Выделить всё

ChatResponse.builder()
.textMessage("Select a fruit! (inline menu)")
.inlineMenus(List.of(
ChatMenu.builder().caption("apple").command("apple").build(),
ChatMenu.builder().caption("kiwi").command("kiwi").build(),
ChatMenu.builder().caption("orange").command("orange").build()))
.build();
< /code>
(2) < /p>
ChatResponse.builder()
.textMessage("What is your favourite color? (keyboard)")
.keyboards(List.of(
ChatMenu.builder().caption("Red;Blue").build(),
ChatMenu.builder().caption("Green;Purple;White").build()))
.build();
вызов:

Код: Выделить всё

SendMessage.SendMessageBuilder sendMessageBuilder = SendMessage
.builder()
.chatId(telegramId)
.parseMode("HTML")
.text(chatResponse.getTextMessage());

buildInlineMenu(sendMessageBuilder, chatResponse);
buildKeyboard(sendMessageBuilder, chatResponse);

execute(sendMessageBuilder.build());
< /code>
Код выше работает как очарование, но я хочу создать и настроить главное меню, а также из Java. Я знаю, что могу добавить главное меню, используя меню Botfather 
из чата Telegram, но я хотел бы использовать Java и для этой функциональности.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -with-java

Вернуться в «JAVA»