Блок Кнопки предназначен для добавления кнопок в чат с пользователем.
Кнопки содержат короткие реплики, которые пользователь может написать или передать в чат с ботом, нажав на кнопку. Экран может содержать несколько кнопок.
Параметр Запретить ввод текста пользователем позволяет отключить возможность ввода текста, пока пользователь находится на экране с кнопками. Таким образом, пользователь сможет перейти к следующему экрану сценария только по нажатию на кнопку. Отключение ввода текста работает только при запуске бота в чате Jivo.
Кнопка может вести к новому экрану сценария, содержать ссылку или фразу, которую можно обработать с помощью блока Интенты.
Текст и ссылка, заданная в кнопке, могут содержать переменные. Значение кнопки можно записать в переменную с помощью блока Условия.
Для чат-ботов, подключенных в канал Telegram, доступно создание инлайн-кнопок, которые будут отображаться внутри диалога в виде реплик чат-бота.
Чтобы создать такие кнопки, воспользуйтесь функцией $reactions.inlineButtons
:
script:
$reactions.inlineButtons([
{text: "Закончить диалог"
, transition: "/newNode_3"
},
{text: "Задать еще вопрос"
, transition: "/newNode_4"
},
]);
Инлайн-клавиатура будет представлена, если среди кнопок будет хотя бы одна кнопка-ссылка.
В чат-ботах, подключенных в другие каналы, кнопки не будут визуально отличаться от обычных.
Для чат-бота в канале Telegram действуют следующие ограничения:
- Максимальная длина текста кнопки — 20 символов. Текст кнопки, выходящий за ограничение, будет перенесен на следующую строку.
- Максимальное количество кнопок в ряду – 8.
- В одном стейте можно добавить до 100 кнопок.
Требования к кнопкам
Максимальная длина кнопки — 30 символов.
Кнопку можно добавить на экран, если он содержит хотя бы один блок из групп Ответ чат-бота и Ввод пользователя, или блок JS Код.
Кнопку нельзя добавить на экран, который содержит блоки Условия, Переход, Http-запрос или завершение сценария.
Запретить ввод текста можно только на экране, который содержит хотя бы одну простую кнопку.
Запрет ввода текста
Вы можете запретить возможность набирать текст в чате с ботом. Для этого на экране сценария должна быть хотя бы одна простая кнопка, которая поможет пользователю продвинуться по сценарию чат-бота.
Запрет ввода текста работает только при запуске бота в чате Jivo. Проверить отключение ввода текста в тестовом виджете нельзя.
- Graph
- Code
Чтобы запретить ввод текста:
Откройте сценарий проекта SaluteBot в Graph.
Выберите экран, где нужно запретить ввод текста пользователю.
Добавьте на экран блок Кнопки.
Выберите вкладку Простая.
Укажите имя кнопки в поле.
Имя кнопки должно быть короче 30 символов.
Включите параметр Запретить ввод текста пользователем.
Параметр недоступен, если блок содержит только кнопки со ссылками.
Нажмите кнопку Сохранить.
Для разблокировки ввода текста, выключите параметр Запретить ввод текста пользователем в настройках бока Кнопки.
Чтобы отключить возможность вводить текст в чате с ботом, укажите параметр "force_reply": "true"
в одной из кнопок, которые будут отображены в чате.
Например:
state:
a: Нажмите кнопку. Сейчас вы не можете писать в чате.
buttons:
{text:"Перейти", "url": "https://example.com", "force_reply": "true"}
Кнопки можно передавать следующими способами:
- в теге buttons;
- в сообщении типа
buttons
; - в функции
$reactions.buttons
.