В этой инструкции Светлана Гизатулина рассказала, как ограничить доступ к команде на 1 час или на любой другой период времени. Функция будет полезна, если есть необходимость временно ограничить выдачу каких-либо материалов пользователю. Например, возможность проходить тестирование раз в день.
Шаг 1 — Подключаем бота к сервису PuzzleBot
Как это сделать вы можете узнать в Базе знаний: https://help.puzzlebot.top/article?r=3&a=18
Шаг 2 — Cоздаем и настраиваем "главную" команду с ограниченным по времени доступом

Переходим во вкладку конструктор и удалям предустановленные команды:
1. Используем сочетание клавиш shift+alt и левой кнопки мыши выделяем все команды и удаляем.
2. Применяем изменения.

Создаём "главную" команду, к которой пользователь сможет получать доступ только 1 раз в 1 час:
1. Нажимаем на + (добавить команду).
2. Выбираем Обычную команду.
3. Пишем название команды.
4. Выбираем нужный вам блок (для демонстрации будет использоваться блок Текст).

5. Добавляем заготовленное сообщение и закрываем команду.
6. Подтверждаем сохранение изменений.
Шаг 3 — Cоздаем команду для контроля преждевременного запуска
Создаем команду, которая оповестит пользователя, если он решит вызвать "главную" команду раньше времени. Для этого повторим пункты 1 - 6 из второго шага для создания команды с сообщением.
Шаг 4 — Cоздаем команду для проверки выполнения всех условий
Создаем команду, которая будет проверять выполнение правил и отправлять нужную команду пользователю.

1. Нажимаем на + (добавить команду).
2. Выбираем команду Условие.
3. Пишем название команды.
4. Тип условие оставляем "Обычное условие" и нажимаем на кнопку Применить.

Добавляем проверку:
5. Тип проверки выбираем "Вызов команды или условие" .
6. Активируем вариант "Задать период". После это отобразятся дополнительные разделы. Выбираем тип периода "Количество часов", где задаем нужное время - 1 час.

7. Тип действие выбираем Отправить команду или условие и выбираем, команду, которая будет предупреждать пользователя, что еще рано вызывать команду.
Если "главная" команда была вызвана менее 1 часа назад, проверка не позволит ее повторно вызвать и отправит пользователю уведомительное сообщение. Это необходимо, чтобы не было ощущения, что бот не реагирует.

8. В исключающем правиле в типе действие выбираем Отправить команду или условие и выбираем "главную" команду.
Если с последнего вызова "главной" команды прошло более 1 часа, то при вызове данной команды она будет отправлена

Фиксируем промежуточный результат, который должен получиться:
1. Условие - выполняет проверку и отправляет пользователю одну из двух команд.
2. Команда 1, или "главная" команда в случае, если она вызвана впервые или с последнего вызова прошло больше 1 часа.
3. Команда 2, или "уведомительная" команда в случае, если прошло меньше 1 часа с последнего вызова "главной" команды.
Шаг 5 — Добавляем инлайн клавиатуру для вызова главной команды
Создать "основную" команду, которая будет давать возможность пользователю вызывать "главную" команду. Для этого повторим пункты 1-4 из второго шага.
Осталось создать кнопку по которой пользователь сможет вызвать "главную" команду и "связать" команды между собой.

5. Нажимаем на "силуэт" кнопки с названием Инлайн клавиатура.

6. Пишем название кнопки.
7. Переход к команде или условию в типе действия установлен по умолчанию - оставляем как есть. Выбираем команду, которую отправит бот при нажатии на кнопку. Важно выбрать команду Условие, так как именно она будет определять, что отправить пользователю.
8. Сохраняем настройки.
Шаг 6 — Соединяем команды и выгружаем изменения

1. Открываем команду с названием /start.
2. Открываем раздел Действия.
3. Находим действие Отправить команду или условие и выбираем "основную" команду.
4. Выгружаем изменения.
Шаг 7 — Проверяем работу бота с любого аккаунта

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






