Действия
Действие — это то, что делает бот в ответ на команду, нажатие кнопки или отправку формы. У команды может быть от 1 до 10 действий.
Когда запускается действие
| Что происходит | Какое действие запустится |
|---|---|
| Участник пишет команду | Действие по умолчанию |
| Участник нажимает кнопку под сообщением | Действие, указанное у кнопки |
| Участник выбирает пункт меню | Действие, указанное у меню |
| Участник отвечает на последний вопрос формы | Действие, указанное в форме как «после отправки» |
Другое действие выполняет {% run %} | Указанное в run действие |
Общие настройки
У каждого действия, независимо от типа, есть:
| Поле | Описание |
|---|---|
| Название | Для списка действий и выпадающих меню, до 64 символов |
| Тип | Что делает действие — см. ниже |
| Описание | Подсказка для себя, до 256 символов |
| Переопределить права | Дополнительные поля вызова именно для этого действия. Они проверяются вместе с правами команды |
| Меню «⋯» | Скопировать UUID, сделать копию действия, удалить |
Зачем переопределять права
Пусть команду !бан могут вызывать хелперы, но кнопку «Подтвердить» под ней должен нажимать только администратор. Включите «Переопределить права» у действия «Подтвердить» и разрешите его только администраторам.
Типы действий
UUID действия
У каждого действия есть UUID — уникальный идентификатор вида 59f7f318-17c9-45b8-be61-33c1f89d54ba. Он нужен, чтобы в шаблоне сослаться на другое действие: указать, что запускает кнопка, или передать управление через run.
Скопировать UUID можно из меню «⋯» действия.
{% do button('SUCCESS', 'accept', 'Подтвердить', '✅', '59f7f318-17c9-45b8-be61-33c1f89d54ba') %}Вместо UUID можно написать 'self' — это «текущее действие». Удобно для кнопок «еще раз» и листания страниц.
UUID работает только внутри команды
Кнопка или run могут запускать действия только своей команды. Если указать UUID действия из другой команды, редактор покажет ошибку.
Параметры
Во все шаблоны действий передается переменная parameters — «сумка» для данных, которые нужно передать дальше:
- из действия, отправившего сообщение, — в действия кнопок под этим сообщением;
- из одного действия — в другое, запущенное через
run.
{% do parameters.store('memberId', arguments.targetMember.id) %}Параметры живут 15 минут с последнего обращения. Подробнее — в статье Параметры.
Запуск одного действия из другого
Тег {% run %} завершает текущее действие и запускает другое действие этой же команды:
{% if arguments.get(1) == 'топ' %}
{% run 'ae04dfed-e19c-49d3-84fc-b05cec59976e' %}
{% endif %}Подробнее — в статье Цепочки действий.