Inline keyboard Telegram пример

InlineKeyboard в Телеграмм ботах (Telegram Bots)

2018-08-01 в 12:28, admin , рубрики: InlineKeyboard, java, telegram bots, Системы обмена сообщениями

InlineKeyboard — клавиатура привязанная к сообщению, изпользующая обратный вызов (CallbackQuery), вместо отправки сообщения с обыкновенной клавиатуры.

Пример

InlineKeyboard в Телеграмм ботах (Telegram Bots) - 1

InlineKeyboard в Телеграмм ботах (Telegram Bots) - 2

Создание каркаса бота

Для начала создадим проект на Maven и добавим репозиторий «Telegram Bots»:

org.telegram telegrambots 4.0.0

При помощью BotFather регистрируем бота и получаем token:

InlineKeyboard в Телеграмм ботах (Telegram Bots) - 3

Inline Keyboard ⌨ Еще одна клавиатура для telegram bot

Далее создаем класс Bot, наследуемся от TelegramLongPollingBot и Овверайдим методы:

Исходный код

Создаем final переменные с именем бота и токеном, добавляем в метод getBotUsername() — botUserName, в getBotToken() — token. В методе main регистрируем бота:

Исходный код

Каркас бота готов! Теперь напишем метод с InlineKeyboard.

Работа с InlineKeyboard

Создаем обьект разметки клавиатуры:

InlineKeyboardMarkup inlineKeyboardMarkup =new InlineKeyboardMarkup();

Теперь выстраиваем положение кнопок.

Создаем обьект InlineKeyboardButton, у которой есть 2 параметка: Текст (Что будет написано на самой кнопке) и CallBackData (Что будет отсылатся серверу при нажатии на кнопку).

InlineKeyboardButton inlineKeyboardButton = new InlineKeyboardButton(); inlineKeyboardButton.setText(«Тык»); inlineKeyboardButton.setCallbackData(«Button «Тык» has been pressed»);

Добавляем его в список, таким образом создавая ряд.

List keyboardButtonsRow1 = new ArrayList<>(); keyboardButtons.add(inlineKeyboardButton);

Если желаете создать еще один ряд, просто сделайте еще один список и добавляйте в него новые кнопки.

List keyboardButtonsRow2 = new ArrayList<>(); keyboardButtons.add(inlineKeyboardButton2);

После этого нам нужно обьеденить ряды, поэтому создаем список рядов.

List> rowList= new ArrayList<>(); rowList.add(keyboardButtonsRow1); rowList.add(keyboardButtonsRow2);

Фича
Разработчик позаботился о нас и мы можем сразу записывать кнопки в список не создавая переменную.

keyboardButtonsRow1.add(new InlineKeyboardButton().setText(«Fi4a») .setCallbackData(«CallFi4a»));

Теперь мы можем установить кнопки в обьект разметки клавиатуры.

Еще по теме:  Гугл ворд в Телеграмме

inlineKeyboardMarkup.setKeyboard(rowList);

Если немного не понятно описание работы с созданием клавиатуры, вот вам схема:

Как работать с Телеграм Inline кнопками на Python

InlineKeyboard в Телеграмм ботах (Telegram Bots) - 4

Вот и всё! Теперь добавляем разметку в сообщение:

SendMessage message = new SendMessage().setChatId(chatId).setText(«Пример») .setReplyMarkup(inlineKeyboardMarkup);

Теперь можем отправлять, вот вам готовый метод:

Исходный код

public static SendMessage sendInlineKeyBoardMessage(long chatId) < InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup(); InlineKeyboardButton inlineKeyboardButton1 = new InlineKeyboardButton(); InlineKeyboardButton inlineKeyboardButton2 = new InlineKeyboardButton(); inlineKeyboardButton1.setText(«Тык»); inlineKeyboardButton1.setCallbackData(«Button «Тык» has been pressed»); inlineKeyboardButton2.setText(«Тык2»); inlineKeyboardButton2.setCallbackData(«Button «Тык2″ has been pressed»); ListkeyboardButtonsRow1 = new ArrayList<>(); List keyboardButtonsRow2 = new ArrayList<>(); keyboardButtonsRow1.add(inlineKeyboardButton1); keyboardButtonsRow1.add(new InlineKeyboardButton().setText(«Fi4a»).setCallbackData(«CallFi4a»)); keyboardButtonsRow2.add(inlineKeyboardButton2); List rowList = new ArrayList<>(); rowList.add(keyboardButtonsRow1); rowList.add(keyboardButtonsRow2); inlineKeyboardMarkup.setKeyboard(rowList); return new SendMessage().setChatId(chatId).setText(«Пример»).setReplyMarkup(inlineKeyboardMarkup); >

Делаем вариант когда будет вызывается метод в обработчике запросов onUpdateReceived:

Исходный код

InlineKeyboard в Телеграмм ботах (Telegram Bots) - 5

Теперь нам нужно обработать делаем новое ветвление в if и обрабатываем CallbackQuery:

Исходный код

InlineKeyboard в Телеграмм ботах (Telegram Bots) - 6

На этом, пожалуй всё, спасибо за внимание!

Весь исходный код:

Весь код

Источник: www.pvsm.ru

Рейтинг
( Пока оценок нет )
Загрузка ...