Перейти к основному содержимому

Как выводить кликабельный список

Иногда нужно вывести список позиций, на которые можно кликнуть и совершить выбор (вместо кнопок). Такая возможность есть в канале чат-виджет.

|| Такой вариант реализации будет работать только в чат-виджете на сайте. В других каналах список не будет выводиться корректно.

  1. Чтобы добавить список, просто добавьте в сценарий блок Текст. В нем напишите что-то вроде этого:

Что вы хотите заказать?* [фалафель]* [морс]

  • Каждая позиция выбора должна быть в квадратных скобках:

[фалафель]

  • Список можно создать с помощью звездочек.

Выглядеть список будет примерно так:

  1. Далее, нам нужно обработать этот ввод.

Помните, что для бота нет разницы, каким образом к нему поступает текст.

Пользователь может нажать обычную кнопку, кликнуть на пункт меню, которое оформлено по примеру выше, либо пользователь может набрать текст вручную. Для бота все это — просто введенный текст. Поэтому далее мы, как обычно, оформляем прием введенного текста.

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

  • Прием любого текста

Добавьте на этот же экран блок Интенты.

В интенте напишите:

$TEXT::choice

Таким образом, любой текст, который введет пользователь, попадет в $TEXT, и затем будет записан в переменную $choice.

примечание

Обратите внимание, что любой текст, введенный на этом этапе, попадет в $choice. Даже если пользователь напишет что-то типа «не знаю» или «не надо». Однако, вы можете доработать сценарий, чтобы такого не происходило с помощью сущностей.

  • Прием только того, что попадает в словарь сущностей

Чтобы ограничить прием текста только вариантами из списка, вы можете перейти на вкладку Сущности, создать там словарь, занести в него названия ваших позиций, и затем использовать название словаря в блоке Интенты, например:

$products::choice

Таком образом, в переменную $choice будет записано только то, что попадет в словарь сущностей $products.

  1. Использование выбранного варианта

Далее, будем использовать переменную $choice для дальнейших задач.

  • Вывод выбора

Можем вывести ее содержимое, чтобы уточнить правильность ввода:

Вы хотите выбрать $choice, верно?

  • Сравнение и другие операции

Можем сравнить ее с чем-нибудь в блоке Условия, либо выполнить другую операцию в блоке Условия (например, сложить с чем-нибудь).

  • Отправка

Можем передать эту информацию одним из способов, таких как: