所以,我看着一个机器人的黑手党团伙对此我的粉丝的这个例子中,他们的自定义键盘让我吃惊:
我发现我必须为了实现它添加这个简单的Java API来电报机器人罐子。我没有添加罐子,但我力知道该怎么去做。我希望创建使用Java自定义键盘。这是源代码:
public class Pizza {
private static final Logger LOG = Logger.getLogger(Pizza.class.getName());
public static void main(String... args) throws Exception {
TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
telegramBotsApi.registerBot(new TelegramLongPollingBot() {
@Override
public void onUpdateReceived(Update update) {
Message message = update.getMessage();
Long chatId = message.getChatId();
String input = message.getText();
if ("/recommend".equals(input)) {
SendMessage request = new SendMessage();
request.setChatId(chatId.toString());
request.setText("Peperoni");
try {
sendMessage(request);
} catch (TelegramApiException e) {
LOG.log(Level.SEVERE, "Could not send message", e);
}
}
}
@Override
public String getBotUsername() {
return "USERNAME_BOT";
}
@Override
public String getBotToken() {
return "BOT_TOKEN";
}
});
}
}
有在此https://github.com/rubenlagus/TelegramBotsExample库的使用一些样品。更准确地说,你可以在https://github.com/rubenlagus/TelegramBotsExample/blob/master/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java(@weatherbot)检查定制keybaords。
在这个文件中,你可以看到,例如,该设置键盘用以下方法产生:
private static ReplyKeyboardMarkup getSettingsKeyboard(String language) {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
replyKeyboardMarkup.setSelective(true);
replyKeyboardMarkup.setResizeKeyboard(true);
replyKeyboardMarkup.setOneTimeKeyboad(false);
List<KeyboardRow> keyboard = new ArrayList<>();
KeyboardRow keyboardFirstRow = new KeyboardRow();
keyboardFirstRow.add(getLanguagesCommand(language));
keyboardFirstRow.add(getUnitsCommand(language));
KeyboardRow keyboardSecondRow = new KeyboardRow();
keyboardSecondRow.add(getAlertsCommand(language));
keyboardSecondRow.add(getBackCommand(language));
keyboard.add(keyboardFirstRow);
keyboard.add(keyboardSecondRow);
replyKeyboardMarkup.setKeyboard(keyboard);
return replyKeyboardMarkup;
}
您可以使用ReplyKeyboardMarkup的SendMessage
方法里面一样:
SendMessage message = new SendMessage();
message.enableMarkdown(true);
message.setReplyMarkup(getSettingsKeyboard(language));
message.setReplyToMessageId(message.getMessageId());
message.setChatId(message.getChatId().toString());
message.setText(getSettingsMessage(language));