50.10. キーボードのカスタマイズ
オプションの書き込みを要求する代わりに、ユーザーキーボードをカスタマイズできます。OutgoingTextMessage には、このような目的に使用できる ReplyMarkup プロパティーがあります。
from("telegram:bots?authorizationToken=123456789:insertYourAuthorizationTokenHere")
.process(exchange -> {
OutgoingTextMessage msg = new OutgoingTextMessage();
msg.setText("Choose one option!");
InlineKeyboardButton buttonOptionOneI = InlineKeyboardButton.builder()
.text("Option One - I").build();
InlineKeyboardButton buttonOptionOneII = InlineKeyboardButton.builder()
.text("Option One - II").build();
InlineKeyboardButton buttonOptionTwoI = InlineKeyboardButton.builder()
.text("Option Two - I").build();
ReplyKeyboardMarkup replyMarkup = ReplyKeyboardMarkup.builder()
.keyboard()
.addRow(Arrays.asList(buttonOptionOneI, buttonOptionOneII))
.addRow(Arrays.asList(buttonOptionTwoI))
.close()
.oneTimeKeyboard(true)
.build();
msg.setReplyMarkup(replyMarkup);
exchange.getIn().setBody(msg);
})
.to("telegram:bots?authorizationToken=123456789:insertYourAuthorizationTokenHere");
from("telegram:bots?authorizationToken=123456789:insertYourAuthorizationTokenHere")
.process(exchange -> {
OutgoingTextMessage msg = new OutgoingTextMessage();
msg.setText("Choose one option!");
InlineKeyboardButton buttonOptionOneI = InlineKeyboardButton.builder()
.text("Option One - I").build();
InlineKeyboardButton buttonOptionOneII = InlineKeyboardButton.builder()
.text("Option One - II").build();
InlineKeyboardButton buttonOptionTwoI = InlineKeyboardButton.builder()
.text("Option Two - I").build();
ReplyKeyboardMarkup replyMarkup = ReplyKeyboardMarkup.builder()
.keyboard()
.addRow(Arrays.asList(buttonOptionOneI, buttonOptionOneII))
.addRow(Arrays.asList(buttonOptionTwoI))
.close()
.oneTimeKeyboard(true)
.build();
msg.setReplyMarkup(replyMarkup);
exchange.getIn().setBody(msg);
})
.to("telegram:bots?authorizationToken=123456789:insertYourAuthorizationTokenHere");
無効にする場合は、次のメッセージで removeKeyboard プロパティーを ReplyKeyboardMarkup オブジェクトに設定する必要があります。
from("telegram:bots?authorizationToken=123456789:insertYourAuthorizationTokenHere")
.process(exchange -> {
OutgoingTextMessage msg = new OutgoingTextMessage();
msg.setText("Your answer was accepted!");
ReplyKeyboardMarkup replyMarkup = ReplyKeyboardMarkup.builder()
.removeKeyboard(true)
.build();
msg.setReplyKeyboardMarkup(replyMarkup);
exchange.getIn().setBody(msg);
})
.to("telegram:bots?authorizationToken=123456789:insertYourAuthorizationTokenHere");
from("telegram:bots?authorizationToken=123456789:insertYourAuthorizationTokenHere")
.process(exchange -> {
OutgoingTextMessage msg = new OutgoingTextMessage();
msg.setText("Your answer was accepted!");
ReplyKeyboardMarkup replyMarkup = ReplyKeyboardMarkup.builder()
.removeKeyboard(true)
.build();
msg.setReplyKeyboardMarkup(replyMarkup);
exchange.getIn().setBody(msg);
})
.to("telegram:bots?authorizationToken=123456789:insertYourAuthorizationTokenHere");