2016-09-24 5 views
0

Так я смотрел на этом примере бота в мафиозной группировке, которая является поклонником и поэтому их пользовательская клавиатура поразила меняКак я могу кодировать эту уникальную настраиваемую команду Telegram Bot Keyboard в Java?

enter image description here

и поэтому я сделал немного исследований о нем и узнал, я нужно добавить этот простой Java-API для баннеров Telegram Bots, чтобы я мог его реализовать. Я добавил банку, но я знаю, как это сделать. Я бы хотел создать пользовательскую клавиатуру с использованием 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"; 
      } 


     }); 
    } 

} 

Пожалуйста, любая помощь

+0

Какие java telegram API вы используете? – Menasheh

+0

Я использую эту java-телеграмму api https://github.com/rubenlagus/TelegramBots –

+0

@Menasheh можно придумать исходный код, который может создать следующую клавиатуру. Спасибо –

ответ

2

есть несколько примеров использования этой библиотеки по адресу https://github.com/rubenlagus/TelegramBotsExample. Более точно, вы можете проверить пользовательские клавиши клавиатуры на https://github.com/rubenlagus/TelegramBotsExample/blob/master/src/main/java/org/telegram/updateshandlers/WeatherHandlers.java (@weatherbot).

Внутри этого файла, вы можете увидеть, например, что настройки клавиатуры генерируется с помощью следующего метода:

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)); 
+0

отлично позвольте мне попробовать это на моем исходном коде, и я скажу вам. Thanks bro –

+0

это сработало спасибо –