June 24

Как защитить бота от спама?

Уровень - Средний 🟩🟩🟥

В данной статье расскажем, как настроить проверку пользователя по языку Telegram и блокировку, если языка нет в списке допущенных


Шаг 1 → Выпустим токен для входящих запросов

  1. Открываем вкладку "Настройки"
  2. Раздел "Интеграции"
  3. Нажимаем кнопку "Сгенерировать API токен"
  4. Скопируйте появившийся токен в буфер обмена

Шаг 2 → Создаем интегрированную переменную

Мы создадим переменную, которая будет получать значение языка пользователя в Telegram через API запрос. Разберем настройки:

  1. Открываем вкладку "Переменные"
  2. Добавим переменную
  3. Задайте свое название, либо можете так и назвать {{DATA_LANG_CODE}}
  4. Выберите тип значения "Интегрированная"
  5. Выберите тип интеграции "HTTP Запрос"
  6. В поле ссылка укажите "https://api.puzzlebot.top/?token=(ВАШ_ТОКЕН_ИНТЕГРАЦИИ из прошлого шага)&method=getUserInChatStatus"
  7. Выберите тип запроса "GET"
  8. Добавим параметр user_id: {{USER_ID_TEXT}}
  9. И параметр chat_id: {{BOT_ID_TEXT}}
  10. Нажмите кнопку "Проверить запрос", вы получите успех результирующего запроса
  11. Нужно выбрать ответ: data.language_code
  12. В самом низу нажмите кнопку "Сохранить переменную". На этом этапе настройка интегрированной переменной считается завершенной.

Шаг 3 → Создаем условие проверки языка

Создадим условие, которое будет проверять язык пользователя в переменной и разрешать доступ, если язык соответствует настройкам. Разберем подробнее:

  1. Создадим условие в конструкторе (Подробнее...)
  2. Добавьте проверку "Значение переменной"
  3. В названии переменой напишите название вашей переменной, в моем случае, переменная {{DATA_LANG_CODE}}
  4. Тип условия остается "Полное совпадение", в фразах пишем код языков, которые пропускаем для работы с ботом дальше
  5. Выбираем действие "Отправить команду или условие" в случае, если правило выполняется. Я веду на другое условие, которое проверяет новый пользователь или уже запустил бота.
  6. Если правило не было выполнено, отработает исключающее правило, в нем настраиваем действие "Заблокировать пользователя", выбираем "Заблокировать навсегда". Заблокированный пользователь не будет учитываться в модерации и считаться нашим подписчиком.

Итог

Настроив интеграцию с API Telegram через PuzzleBot, вы можете автоматически определять язык пользователя и управлять доступом к боту на основе языковых предпочтений.

Ключевые этапы настройки:

  1. Генерация API-токена – выполняется для конкретного бота по определенному запросу.
  2. Создание интегрированной переменной – позволяет получать данные о языке пользователя через HTTP-запрос.
  3. Настройка условия проверки языка – автоматически фильтрует пользователей, разрешая доступ только выбранным языкам, а остальных блокируя.

Эта система не только упрощает модерацию, но и делает бота более удобным для целевой аудитории. Реализовав такой механизм, вы сможете эффективнее управлять аудиторией.