В данной статье мы разберем каким образом можно сделать клавиатуру быстрых ответов для Telegram.
Message Box | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Простой метод
В стрелках, выходящих из блока вопроса, можно автоматически создать кнопки с вариантами ответа, используя параметр Вариант ответа.
Примечание |
---|
Кнопки, созданные таким образом имеют следующие ограничения:
|
Для добавления кнопки ответа в параметрах стрелки из блока вопроса нужно заполнить поля
- Вариант ответа
...
- ,
- Порядковый номер кнопки
...
В качестве типа выходных данных могут использоваться ключевые слова или интеллектуальное принятие решений – но при нажатии на кнопку будет произведен переход по стрелке, независимо от настроек типа выходных данных.
Пример работы кнопок в телеграме:
Продвинутый метод
Используя запрос к серверу, можно отправить запрос на отправку сообщений Telegram, который может содержать в себе клавиатуру быстрых ответов.
Примечание |
---|
Кнопки, созданные таким образом имеют следующие ограничения:
|
Порядок действий
1. Сначала необходимо добавить блок результата, в котором будут объявлены переменные, необходимые для отправки запроса:
Название переменной | Значение | Описание |
---|---|---|
userId | {messengerUserId} | Идентификатор Telegram-чата, в который будет отправляться сообщение. Должен быть равен {messengerUserId} для отправки в текущий чат. |
botId | ВАШ ТОКЕН | Токен вашего Telegram-бота. Выдается BotFather во время создания бота в Telegram. |
text | Текст | Текст сообщения, которое будет отправлено вместе с клавиатурой ответов. Данное поле не может быть пустым, иначе клавиатура не будет отправлена. |
2. Далее нужно сформировать тело запроса, которое будет содержать клавиатуру быстрых ответов.
Тело запроса имеет следующий вид:
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "reply_markup": { "keyboard": [ [ //массив с первой строкой клавиатуры "😁", "Ты кто?😅", "Привет" ], [ //массив со второй строкой клавиатуры "Ой😊", "М?", "😜" ] ], "resize_keyboard": true, //параметр, отвечающий за автоматическую подгонку размера клавиатуры. (true - клавиатура уменьшится по количеству строк, false - полноразмерная клавиатура) "one_time_keyboard": true //параметр, отвечающий за закрытие клавиатуры после нажатия на ответ (true - скрыть клавиатуру, false - не скрывать) } } |
Для отправки запроса с помощью BPL-операций необходимо убрать переносы строки, чтобы тело запроса шло в одну строчку, и подставить в начале $json = :
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
$json = {"reply_markup": {"keyboard": [["😁","Ты кто?😅","Привет"],["Ой😊","М?", "😜"]],"resize_keyboard": true,"one_time_keyboard": true}} |
Это будет являться первой строкой BPL-операции.
Далее добавляем в сценарий блок арифметики с типом Произвольный тип, и вставляем в него наше получившееся тело запроса, а затем еще две строчки:
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
$url = str.join(["https://api.telegram.org/bot", $botId, "/sendMessage?chat_id=", $userId, "&parse_mode=HTML&text=", $text], "")
$response = http.sendRequest($url, "POST", $json, {"accept": "application/json", "Content-Type": "application/json"}) |
Полностью код блока арифметики должен выглядеть такполе BPL-Выражение следующий код:
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
$json = {"reply_markup": {"keyboard": [["😁","Ты кто?😅","Привет"],["Ой😊","М?", "😜"]],"resize_keyboard": true,"one_time_keyboard": true}} $url = str.join(["https://api.telegram.org/bot", $botId, "/sendMessage?chat_id=", $userId, "&parse_mode=HTML&text=", $text], "") $response = http.sendRequest($url, "POST", $json, {"accept": "application/json", "Content-Type": "application/json"}) |
В первой строке находится тело запроса, далее идет сам запрос.
Информация |
---|
После ввода кода в поле BPL-выражение нажмите кнопку Преобразовать BPL в AST для сохранения кода в память бота. |
3. После блока с запросом должен стоять блок вопроса без текста, и стрелки из этого блока вопроса должны отвечать за обработку ответов с клавиатуры.
Предупреждение |
---|
Если в блоке вопроса будет текст, то клавиатура пропадет сразу же после отправки. |
4. В стрелках из блока вопроса нужно обработать ответы с кнопок клавиатуры, используя ключевые слова, либо интеллектуальное принятие решений. В данном примере обрабатывается только вариант "Привет".
Таким образом можно добавить клавиатуру быстрых ответов для Telegram-бота.
Пример работы фрагмента сценария: