Life-Hack #6: Кастомная капча (Математическое выражение)
Данный Life-Hack позволит вам создавать кастомные капчи на основе математических выражений.
Life-Hack - предполагает использование имеющегося функционала не очевидными и достаточно хитроумными способами, создавая в своём боте функции не заложенные разработчиками конструктора изначально.
В данном разделе мы публикуем различные варианты и готовые решения того, что может быть создано с использованием возможностей, уже имеющихся в конструкторе @MenuBuilderBot. При создании подобных руководств предполагается, что вы, в той или иной степени, уже знакомы с основными функциями конструктора и базовыми механизмами работы с ним. Если в процессе изучения представленного материала ваших базовых знаний окажется не достаточно, советуем изучить основы прежде чем продолжать.
❖ Приобретение функционала
Весь функционал приобретается В ВАШЕМ БОТЕ, для этого перейдите в свой бот:☞ 🔐Админ | 🧩Расширения
ВАЖНО: Приобретение функционала для бота доступно только Создателю (хозяину) бота. Админы покупать функционал - НЕ МОГУТ!
Предупреждение
Данное руководство создано исключительно по просьбам админов. Со своей стороны, мы должны предупредить что такой вид капчи НЕ ЯВЛЯЕТСЯ надежным способом защиты, однако по непонятным нам причинам, многие из создателей ботов, отдают предпочтение именно этому варианту... Такие капчи сложнее решаются людьми нежели роботами, потому что информация в них представлена в текстовом виде и легко распознается автоматически. Мы не рекомендуем использовать данную капчу для защиты каких-либо серьёзных разделов меню. Мы рекомендуем использовать стандартные капчи, платные или бесплатные которые присутствуют в функционале конструктора.
Данную капчу можно устанавливать ТОЛЬКО на кнопки меню. Ей нельзя закрыть "Главное Меню" бота - потому как в её работе задействованы Формы - которые невозможно создать в "Главном Меню".
Вам понадобится:
1. Цифровые переменные - 3 штуки☞ 🔐Админ | 🧩Расширения | 📂Переменные
2. Action-ы - 4 штуки (+1 Не обязательный)☞ 🔐Админ | 🧩Расширения | 📂Action-ы
3. Условия для кнопок☞ 🔐Админ | 🧩Расширения | 📂Кнопки
4. Макросы и выражения для кнопок☞ 🔐Админ | 🧩Расширения | 📂Кнопки
5. (Не обязательно) Невидимые кнопки☞ 🔐Админ | 🧩Расширения | 📂Кнопки
❖ Создание кастомной капчи
Как это работает
Кнопка с функцией капча содержит функционал Форм "Ввод Переменной". Pre-Action-ы генерируют два числа, которые выводятся в сообщении формы "Ввода Переменной". Если юзер правильно указывает сумму двух чисел, то "Post-Action Команд" с Условием переносит его в скрытое меню. Если сумма чисел юзером указана неверно, то второй Post-Action с Условием переносит их обратно в форму ввода переменной.
1. Создаем цифровые переменные
Переходим в вашем боте:☞ 🔐Админ | 🗄Переменные | 📙Числовые | ➕ Создать Переменную
Имена переменных: num1
, num2
, num3
(можете использовать свои).
2. Создаем кнопку защищенного меню
Это кнопка, меню которой нужно закрыть капчей.
Нажимаем в вашем боте:🎛 Редактор Кнопок | ➕ Добавить Кнопку
Имя кнопки "Скрытое Меню 999".
2.1. Назначаем ей Команду (например: /target
)
Опции: Переход по Команде
2.2. Назначаем ей Условие: {(%num1% + %num2%) == %num3%}
2.3. Делаем эту кнопку "Невидимой" для Юзеров и если нужно, то и для админов.
Внутри этой кнопки вы будете создавать меню, которое будет закрыто капчей.
3. Создаем кнопку для функции капчи
Нажимаем в вашем боте:🎛 Редактор Кнопок | ➕ Добавить Кнопку
Имя кнопки "Капча".
3.1. Не выходя из Редактора Кнопок (если вышли зайдите снова) нажимаем инлайн кнопку настроек [*].
3.2. Назначаем ей Команду (например: /capt
)
Опции: переход по команде
Данную кнопку можно сделать скрытой и обращаться к функционалу при помощи инлайн кнопки с её командой. Либо ей можно дать название кнопки того меню, которое вы хотите защитить этой капчей.
В базовом варианте, юзер должен будет вводить капчу при каждой попытке входа в закрытое меню. Если вам нужен одноразовый ввод капчи, то первым Action-ом добавьте Pre-Action Команд (как это сделать будет написано ниже). Вам понадобится 1 дополнительный Action.
● Выбираем "Action Команд"
Комманда: /target
(кнопку с этой командой мы создали ранее)
Условие: {(%num1% + %num2%) == %num3%}
Сообщение: нет
Опции: Прервать выполнение
После этого продолжайте следовать инструкциям руководства.
3.3. Добавляем Pre-Action-ы для генерации чисел выражения капчи.
Не выходя из Редактора Кнопок и из Настроек (если вышли зайдите снова).
Нажимаем "Назначить Pre-Action"
● Выбираем "Action Чисел"
Переменная для изменения: "num1
"
Тип операции: Установить Значение
Значение: {randi(A, B)}
Условие: нет
● Выбираем "Action Чисел"
Переменная для изменения: "num2
"
Тип операции: Установить Значение
Значение: {randi(A, B)}
Условие: нет
Где:
"A" - минимальное число выражения Капчи
"B" - максимальное число выражения капчи
3.4. Выходим из редактора Pre-Action-ов
3.5. Добавляем Post-Action созданной вами кнопке.
Не выходя из Редактора Кнопок и из Настроек (если вышли зайдите снова).
Нажимаем "Назначить Post-Action"
● Выбираем "Action Команд"
Комманда: /target
(кнопку с этой командой мы создали ранее)
Условие: {(%num1% + %num2%) == %num3%}
Опции: Прервать выполнение
● Выбираем "Action Команд"
Комманда: /capt
Условие: {(%num1% + %num2%) != %num3%}
Сообщение: "Капча не верна, попробуйте ещё раз..."
Опции: Прервать выполнение
Надо понимать что в капче можно использовать выражения любого вида (не только сложение) и с любым количеством аргументов, однако не рекомендуем слишком усложнять задачу юзерам - потому как для роботов (на кого она и должна быть рассчитана) любая подобная задача не представляет НИКАКОЙ сложности.
3.6. Выходим из Редактора Кнопок и переходим в Редактор Сообщений.
4. Создаем форму ввода ответа
В созданной кнопке капчи добавляем форму "Ввод Переменной".
Нажимаем в вашем боте:📝 Редактор Постов | ➕ Добавить Ввод Переменной
Переменная: "num3
"
Тип: Вопрос с одиночным ответом
Сообщение:
"Введите сумму двух чисел:
%num1% + %num2% = ???"
В данном life-hack-е описана базовая механика подхода к реализации кастомной капчи. Окончательный вид функционала может отличаться для разных проектов. Например генерировать число для капчи можно при помощи броска стикера кубика в Телеграм, тогда юзер должен будет вписать число выпавшее на кубике.
Для этого вам понадобятся:
Расширенные формы.
Для добавления перейдите в вашем боте:☞ 🔐Админ | 🧩Расширения | 📂Формы