SmartBot
Search…
Взаимодействие пользователей
Смена контекста
С помощью временных переменных, а также шагов Извлечь данные и Сменить контекст можно организовать взаимодействие несколько пользователей в беседе.
В этой статье мы рассмотрим пример, как настроить цепочку для передачи баланса между двумя пользователями.

Создаём переменные

Для начала, если у вас ещё нет переменной баланса, создайте её:
Обратите внимание на тип переменной: Число. Кроме того, это обязательно должна быть локальная (то есть пользовательская) переменная.
Все остальные переменные будут временными: их не нужно создавать в разделе «Переменные». Они существуют только с момента выполнения шага, который их создаёт, до завершения обработки текущего сообщения.

Создаём цепочку

Создадим пару временных переменных для того, чтобы сохранить id страницы и имя человека, который выполняет передачу.
Для того, чтобы создать временную переменную, просто начните вводить её желаемое имя, затем нажмите «Временная переменная».
Теперь добавим шаг «Извлечь данные».
Нам нужно получить id человека, которому будет передаваться сумма, а также сама сумма. Опять воспользуемся временными переменными, чтобы не засорять общий список переменных.
Также поставим галочку, которая позволит нам корректно обработать ситуацию, когда команда была введена неверно:
Сохраним текущий блок и цепочку. Затем нажмём «Редактировать блок». С ним всё просто:
Сохраним этот блок. Вернёмся к нашей цепочке «Передать».
Мы получили все необходимые нам данные. Теперь добавим новую группу шагов, в которой проверим, а хватает ли передающему средств на балансе.
Теперь, когда мы собрали все данные и убедились в их достоверности, осталось сделать самое главное — выполнить перевод.
Создаём новую группу шагов (третью по счёту) и добавляем шаг «Установить переменную». В нём мы спишем с баланса передающего указанную им сумму:
Затем переключимся на принимающую сторону:
Теперь, после смены контекста, все локальные и специальные переменные относятся уже к другому человеку.
Прибавим ему баланс и оповестим об успешном переводе:

Тестируем

Запомним текущее значение переменных в разделе «Пользователи»:
Перейдём в беседу и напишем команду. Важно, чтобы принимающий перевод человек был указан именно как упоминание (введите @ и выберите пользователя, остальное ВК сделает за вас сам).
Проверим результат:
Всё верно.
В случае если на балансе будет недостаточно средств или человек ошибётся в синтаксисе команды, бот сообщит об этом и не будет выполнять перевод: