June 24
Как защитить бота от спама?
Уровень - Средний 🟩🟩🟥
В данной статье расскажем, как настроить проверку пользователя по языку Telegram и блокировку, если языка нет в списке допущенных
- Конструктор (Подробнее...)
- Условия (Подробнее...)
- Интегрированные переменные (Подробнее...)
Шаг 1 → Выпустим токен для входящих запросов
- Открываем вкладку "Настройки"
- Раздел "Интеграции"
- Нажимаем кнопку "Сгенерировать API токен"
- Скопируйте появившийся токен в буфер обмена
Шаг 2 → Создаем интегрированную переменную
Мы создадим переменную, которая будет получать значение языка пользователя в Telegram через API запрос. Разберем настройки:
- Открываем вкладку "Переменные"
- Добавим переменную
- Задайте свое название, либо можете так и назвать {{DATA_LANG_CODE}}
- Выберите тип значения "Интегрированная"
- Выберите тип интеграции "HTTP Запрос"
- В поле ссылка укажите "https://api.puzzlebot.top/?token=(ВАШ_ТОКЕН_ИНТЕГРАЦИИ из прошлого шага)&method=getUserInChatStatus"
- Выберите тип запроса "GET"
- Добавим параметр user_id: {{USER_ID_TEXT}}
- И параметр chat_id: {{BOT_ID_TEXT}}
- Нажмите кнопку "Проверить запрос", вы получите успех результирующего запроса
- Нужно выбрать ответ: data.language_code
- В самом низу нажмите кнопку "Сохранить переменную". На этом этапе настройка интегрированной переменной считается завершенной.
Шаг 3 → Создаем условие проверки языка
Создадим условие, которое будет проверять язык пользователя в переменной и разрешать доступ, если язык соответствует настройкам. Разберем подробнее:
- Создадим условие в конструкторе (Подробнее...)
- Добавьте проверку "Значение переменной"
- В названии переменой напишите название вашей переменной, в моем случае, переменная {{DATA_LANG_CODE}}
- Тип условия остается "Полное совпадение", в фразах пишем код языков, которые пропускаем для работы с ботом дальше
- Выбираем действие "Отправить команду или условие" в случае, если правило выполняется. Я веду на другое условие, которое проверяет новый пользователь или уже запустил бота.
- Если правило не было выполнено, отработает исключающее правило, в нем настраиваем действие "Заблокировать пользователя", выбираем "Заблокировать навсегда". Заблокированный пользователь не будет учитываться в модерации и считаться нашим подписчиком.
Итог
Настроив интеграцию с API Telegram через PuzzleBot, вы можете автоматически определять язык пользователя и управлять доступом к боту на основе языковых предпочтений.
- Генерация API-токена – выполняется для конкретного бота по определенному запросу.
- Создание интегрированной переменной – позволяет получать данные о языке пользователя через HTTP-запрос.
- Настройка условия проверки языка – автоматически фильтрует пользователей, разрешая доступ только выбранным языкам, а остальных блокируя.
Эта система не только упрощает модерацию, но и делает бота более удобным для целевой аудитории. Реализовав такой механизм, вы сможете эффективнее управлять аудиторией.