Выдача промокодов
Работа с массивами
Last updated
Работа с массивами
Last updated
Допустим Вам нужно через бота выдавать промокоды: по одному каждому человеку.
Для начала создадим глобальную переменную %промокоды% типа Массив. Обратите внимание, что значения (сами промокоды) записываются через запятую, и каждое значение заключено в двойные кавычки. Всё это — требования формата JSON.
Пример массива промокодов:
Также нам потребуется переменная, которая будет хранить факт выдачи промокода каждому человеку. Для этого подойдёт локальная строковая переменная. Назовём её, например, %промокод_выдан%. Начальное значение — строка "нет". После выдачи промокода мы будем менять её на "да".
Сначала, в первой группе шагов, проверим, а не закончились ли у нас промокоды.
Для этого добавим сложное условие:
Если длина массива %промокоды% равна нулю, то мы отправим пользователю сообщение, что акция уже завершена, и вторым шагом обязательно сделаем "Выйти из цепочки". Тогда нам не придётся ниже дублировать условия, для случая, если промокоды ещё есть.
Для этой цели нам вполне хватит возможностей обычных условий на переменные:
Также как и в предыдущей ситуации отправляем пользователю сообщение и выходим из цепочки:
Теперь, когда мы разобрались со всеми "внештатными" ситуациями, мы, наконец, можем выдать очередной промокод.
Создаём третью группу шагов. На этот раз никаких условий добавлять не нужно.
Вытаскиваем из массива очередной промокод и сохраняем его во временную переменную %код%:
Отправляем сообщение с кодом пользователю:
И сохраняем информацию о том, что пользователь получил свой промокод:
Просим промокод в первый раз:
Просим ещё раз:
Теперь, чтобы проверить кейс, когда промокоды уже кончились, зайдём в раздел Переменные и сменим значение переменной %промокоды% на пустой массив: []. А в разделе Пользователи сменим значение %промокод_выдан% на "нет".
И ещё раз попросим бота выдать промокод: