Skip to main content

Life-Hack #2: Группы юзеров в боте

Группы юзеров в боте позволят админу управлять доступом к функционалу бота - разрешая и запрещая доступ для разных групп. Позволит создать уровни доступа - когда юзер с высоким уровнем будет иметь доступ не только в свою группу, но и во все нижние группы. Возможно организовать платный доступ и автоматизировать назначение групп.

Life-Hack - предполагает использование имеющегося функционала не очевидными и достаточно хитроумными способами, создавая в своём боте функции не заложенные разработчиками конструктора изначально.

В данном разделе мы публикуем различные варианты и готовые решения того, что может быть создано с использованием возможностей, уже имеющихся в конструкторе @MenuBuilderBot. При создании подобных руководств предполагается, что вы, в той или иной степени, уже знакомы с основными функциями конструктора и базовыми механизмами работы с ним. Если в процессе изучения представленного материала ваших базовых знаний окажется не достаточно, советуем изучить основы прежде чем продолжать.


Приобретение функционала


Весь функционал приобретается В ВАШЕМ БОТЕ, для этого перейдите в свой бот:
☞ 🔐Админ | 🧩Расширения

ВАЖНО: Приобретение функционала для бота доступно только Создателю (хозяину) бота. Админы покупать функционал - НЕ МОГУТ!


Вам понадобится:

1. Цифровая переменная.
☞ 🔐Админ | 🧩Расширения | 📂 Переменные

Вы можете использовать любую не задействованную цифровую переменную, если она уже у вас есть.

2. Условия для кнопки.
☞ 🔐Админ | 🧩Расширения | 📂Кнопки

3. (Не обязательно) Кнопка «Фикс. Обмен 1».
☞ 🔐Админ | 🧩Расширения | 📂Кнопки

Нужна для автоматизации назначения групп.


Создание групп пользователей


1. Приобрести и создать цифровую переменную.

Назвать ее например "group"

Вы можете использовать любую незадействованную текстовую переменную если она у вас уже есть.


2. Создайте три кнопки

2.1 Одна для меню общего доступа, например: "Добро пожаловать всем".

2.2 Одна для групп первого уровня доступа, например: "Группа 1".

2.3 Одна для второго уровня доступа, например: "Группа 2".


43003ef7a6295b625d3e2.jpg


3. Добавьте текстовые сообщения:

3.1 Пройдите в кнопку "Добро пожаловать всем" и добавьте сообщение на подобие: "Доступ сюда разрешён всем".

3.2 Пройдите в кнопку "Группа 1" и добавьте сообщение на подобие: "Это сообщение видно только участникам группы 1".

3.3 Пройдите в кнопку "Группа 2" и добавьте сообщение на подобие: "Это сообщение видно только участникам группы 2".


be6658b78559be4e0890f.jpg



4. Выберите кнопку "Группа 1" и через Редактор Кнопок зайдите в её настройки


566c4948597aa3e51165e.jpg



5. Нажмите "Назначить условие"

Вы не увидите этой кнопки если вы не приобрели расширение «Условия в Кнопках».


bbf4e7fb530313a55d13d.jpg



6. Добавьте следующее условие

{%group% == 1}
В данном выражении макрос "%group%" замените макросом с именем вашей переменной, если при её создании указали другое имя. "1" в выражении должно быть заменено на номер группы для которой создаётся условие.

Если вы хотите чтобы пользователи из второй группы тоже имели доступ к данному меню, используйте следующее выражение:
{(%group% == 1) or (%group% == 2)}
В этом случае только пользователи из групп 1 и 2 будут иметь доступ к этому меню.

Если использовать следующее выражение:
{%group% >= 1}
Все пользователи из групп 1 и выше будут иметь доступ к этому меню.


7. Следующим шагом добавьте сообщение которое вы хотите показать пользователю если у него нету доступа к данному меню

Например:
"Сожалеем, в доступе отказано. Обратитесь к администратору для изменения уровня доступа до первого."


8e47c276e6c734e562d27.jpg


8. Выйдите из настроек кнопки


9. Создайте условие для кнопки "Группа 2"

{%group% == 2}


10. Следующим шагом добавьте сообщение которое вы хотите показать пользователю если у него нету доступа к данному меню

Например:
"Сожалеем, в доступе отказано. Обратитесь к администратору для изменения уровня доступа до второго."


На этом вы закончили настройку поведения бота с учётом наличия групп.


Как управлять группами пользователей


1. По умолчанию все ваши пользователи будут принадлежать к группе номер "0" (ноль)


2. Используйте команды переменных чтобы управлять группами пользователей:

2.1. Чтобы узнать группу пользователя отправьте боту команду:
/varget group userid/usercode
(Замените "userid/usercode" номером Telegram ID пользователя или его Юзер-Кодом).


5882bc1d783966a9b72ac.jpg


Если, пользователю присвоена группа 0 (ноль). При попытке зайти в Группу 1 в доступе ему будет отказано:


a92feb3077116d1259817.jpg


2.2 Чтобы установить группу пользователю используйте команду:
/varset group userid/usercode 1
(Замените "userid/usercode" номером Telegram ID пользователя или его Юзер-Кодом).


a05c2fe11a678f4d651c9.jpg


Теперь когда пользователю присвоена группа 1 он может получить доступ в кнопку "Группа 1".


d7fbef146f08ad6fd6d87.jpg


Однако вход в "Группу 2" для него по прежнему будет закрыт:


44b664382206be674e58b.jpg



Как автоматизировать покупку доступа в группы


1. Приобретите кнопку «Фикс. Обмен 1»

Вы можете использовать не задействованную кнопку если она у вас уже есть.


2. Добавьте кнопку

Например: "Купить доступ в группу 1".
Перейдите в настройки кнопки.


3. Добавьте условие кнопке

{%group% < 1}

С сообщением об ошибке на подобие этого: "Вы уже приобрели доступ в эту группу".
Это не позволит юзерам по ошибке приобрести функцию дважды.


4. Нажмите кнопку «Задать Фикс. обмен»

Вы не увидите этой кнопки если не приобрели кнопку «Фикс. Обмен».


7de4731741929fe2d7a58.jpg


4.1 Выберите переменную "balance".
(или любую другую на которой хранятся средства юзеров в вашем боте.)


c3f34118b8fa8cf9bf16a.jpg


4.2 Укажите сумму списания (цену) за доступ в группу 1.
Указанная сумма будет списана с баланса юзера при покупке.


fe1311981ee52979cde69.jpg


4.3 Выберите из списка переменную "group".
(или ту которую использовали для хранения данных о группе)


8807e83c5a9d63a45f390.jpg


4.4 Установите значение 1.


3c5f3320e826f3080af79.jpg


4.5 Введите сообщение на случай когда приобретение прошло удачно.

Например:
"Благодарим за приобретение теперь номер вашей группы %group%".
Как видно из примера в сообщении можно использовать макрос переменной "%group%" чтобы показать юзеру новый номер его группы.


0dcb0486f8287b2220835.jpg



4.6 Введите сообщение на случай если покупка не возможна.
Например:
"Покупка не возможна. Необходимо 50$, у вас однако только %balance%$".
Как видно из примера в сообщении можно использовать макрос переменной %balance% чтобы показать юзеру текущее состояние его баланса.


e3b05964458732cf31974.jpg



4.7 Выйдите из настроек кнопки.


Вы закончили с настройкой автоматического приобретения доступа в группу 1.

• • •

Если юзер уже имеет в группу 1 - вот что он увидит:


bb95f5c128094bdfd01e4.jpg


Если юзеру присвоена группа 0 (ноль) и недостаточно средств на балансе - вот что он увидит:


f88fe5eece86f07491fb6.jpg


Если у юзера достаточно средств и приобретение прошло успешно:


df5b82fb792cfe3f5b4e3.jpg


Теперь юзеру будет присвоена группа 1 и он получит доступ в соответствующую кнопку вашего бота.


3514704776ccf5d80ef69.jpg


• • •

Создание механизма автоматического приобретения юзером доступа в группу 2 происходит аналогичным образом.