buttons
buttons — кнопки, осуществляют переходы между стейтами сценария.
Синтаксис
Название кнопки добавляется в кавычках после тега buttons.
- По нажатию будет отправлен запрос с текстом, указанным внутри кнопки.
buttons:
"Это кнопка 1"
"Это кнопка 2"- По нажатию на кнопку может быть осуществлен переход в указанный стейт, если:
- в левой части тега указана строка, определяющая текст внутри кнопки,
- в правой части — строка, определяющая путь перехода при нажатии кнопки.
# По нажатию на кнопку будет осуществлен переход в стейт /RememberCity
buttons:
"Санкт-Петербург" -> ./RememberCity
"Москва" -> ./RememberCity- В кнопках можно использовать строковые подстановки:
buttons:
"Перейдите в раздел {{ $request.query }}" -> ./buttons:
"Кнопка" -> {{$temp.match.targetState}}- В кнопках могут передаваться объекты:
buttons:
{ text: "Отправить местоположение", request_location: true, one_time_keyboard: false }Ограничения каналов
-
- Максимальная длина текста кнопки – 20 символов. Текст кнопки, выходящий за ограничение, переносится на следующую строку.
-
- Максимальная длина текста кнопки – 20 символов.
- Максимальное количество кнопок в сообщении – 3.
-
- Кнопки с текстом и со ссылками нельзя использовать в одном стейте.
- Максимальное количество кнопок в сообщении – 3.
- Максимальная длина текста кнопки – 20 символов.
- Все варианты текстов кнопок необходимо регистрировать заранее.
-
- На одной строке можно разместить 1, 2, 3 или 6 кнопок.
Управление количеством символов
Вы можете управлять количеством символов в строке кнопок для каналов ВКонтакте и Telegram из сценария. Для этого вызовите в стейте script:
script:
$response._buttonsRowLength=30; // 30 символов в строкеПримеры использования
К одному ответу бота, указанному в теге a, нельзя одновременно добавить теги buttons и inlineButtons. Тем не менее можно добавить несколько ответов в один стейт и к каждому ответу добавить разные типы кнопок.
Telegram
- Кнопки могут использоваться для запроса локации:
state: Buttons
a: Поделитесь вашим текущим местоположением.
buttons:
{ text: "Отправить местоположение", request_location: true, one_time_keyboard: false }
state:
event: telegramSendLocation
a: Локация получена- Кнопки могут использоваться для запроса номера телефона:
state: Order
a: Если все верно, отправьте свой номер телефона, и наш менеджер с вами свяжется.
buttons:
{text: "Отправить номер телефона", request_contact: true}
"Меню" -> /ChoosePizza
state: GetPhoneNumber
event: telegramSendContact
script:
$client.phone_number = $request.rawRequest.message.contact.phone_number;
a: Спасибо! Наш менеджер свяжется с вами по номеру телефона {{ $client.phone_number }}.i-Digital: WhatsApp
Шаблон
Прежде чем использовать кнопки в сценарии канала i-digital: WhatsApp, необходимо зарегистрировать их в качестве шаблона в i-Digital.
В шаблоне нужно указать текст сообщения, текст и содержание кнопки.
Шаблон с текстовыми кнопками
| Текст сообщения | Кнопка чата 1 | Кнопка чата 2 |
|---|---|---|
| Автомобиль будет использоваться в личных целях? | Да | Нет |
Для получения формы шаблона обратитесь к своему аккаунт-менеджеру.
Пример сценария
В данном сценарии заранее были зарегистрированы кнопки. По нажатию на Да или Нет будут осуществлены переходы в /NormalButtons1 или /NormalButtons2.
state: Buttons
q!: buttons
a: Автомобиль будет использоваться в личных целях?
buttons:
"Да" -> /NormalButtons1
"Нет" -> /NormalButtons2
state: NormalButtons1
a: Перейдем к оформлению.
state: NormalButtons2
a: Тогда в каких целях будет использоваться автомобиль?