DeclineChatJoinRequest
DeclineChatJoinRequest — отклоняет заявку пользователя на вступление в чат/канал.
📝 Назначение
Используется для автоматической модерации входящих заявок в чатах с включённым режимом одобрения. После вызова реакции пользователь не становится участником чата, его заявка отклоняется.
Когда это нужно:
- Пользователь не соответствует критериям (возраст, регион и т.д.)
- Пользователь не указал обязательную информацию в заявке (поле
bio) - Автоматическое отклонение спам-заявок
- Белый список (принимаем только определённых пользователей)
💡 Совет: Для одобрения заявки используйте реакцию ApproveChatJoinRequest.
⚙️ Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat.id | Integer/String | ✅ Да | ID чата или @username канала |
| user.id | Integer | ✅ Да | ID пользователя, чью заявку нужно отклонить |
📥 Получение данных из update
При получении заявки бот получает update типа chat_join_request. Необходимые данные доступны по путям:
| Данные | Путь в переменной | Пример |
|---|---|---|
| ID чата | ${update.chat_join_request.chat.id} |
-100123456789 |
| ID пользователя | ${update.chat_join_request.from.id} |
987654321 |
| Имя пользователя | ${update.chat_join_request.from.first_name} |
Иван |
| Username | ${update.chat_join_request.from.username} |
@ivan |
| Био пользователя | ${update.chat_join_request.bio} |
Люблю программирование |
| Ссылка-приглашение | ${update.chat_join_request.invite_link} |
https://t.me/+abc123 |
🔐 Требуемые права бота
| Право | Описание |
|---|---|
| Администратор чата | Бот должен быть администратором чата |
| can_invite_users | Право приглашать пользователей (обязательно) |
💡 Совет: Проверить права бота можно через реакцию
GetChatMemberдля самого бота или в разделе/adm→ Чаты/Каналы.
🧪 Примеры использования
Пример 1: Отклонение всех заявок
Задача: Отклонить все входящие заявки (группа только по приглашениям).
Обработчик: Тип chat_join_request
Реакции:
DeclineChatJoinRequest→
chat.id:${update.chat_join_request.chat.id}user.id:${update.chat_join_request.from.id}
SendMessage→ (в личку пользователю)
chat_id:${update.chat_join_request.from.id}- Текст:
Извините, вступление в группу только по приглашениям администраторов.
Пример 2: Отклонение пользователей без bio
Задача: Принимать только пользователей, заполнивших bio в Telegram.
Обработчик: Тип chat_join_request
Реакции:
TriggerFolderс условием:Has→${update.chat_join_request.bio}
- (условие
false— bio не заполнено) - Внутри:
DeclineChatJoinRequest - Внутри:
SendMessage→Заполните раздел "О себе" в Telegram и попробуйте снова.
TriggerFolderс условием: (без условий, для остальных)
- Внутри:
ApproveChatJoinRequest(одобрить)
Пример 3: Отклонение спам-заявок
Задача: Отклонять заявки, содержащие ссылки в bio.
Обработчик: Тип chat_join_request
Условие: String → ${update.chat_join_request.bio} содержит http или t.me
Реакции:
DeclineChatJoinRequest→
chat.id:${update.chat_join_request.chat.id}user.id:${update.chat_join_request.from.id}
SendMessage→ текст:Ваша заявка отклонена. Причина: недопустимое содержимое в профиле.
Пример 4: Белый список (отклонять всех, кроме указанных)
Задача: Принимать только пользователей из заранее созданного списка allowed_users.
Обработчик: Тип chat_join_request
Реакции:
TriggerFolderс условием:InUserList→ списокallowed_users, режим ✅
- (условие
true— пользователь в белом списке) - Внутри:
ApproveChatJoinRequest
TriggerFolderс условием:NOT+InUserList→ списокallowed_users, режим ✅
- Внутри:
DeclineChatJoinRequest - Внутри:
SendMessage→Вы не в списке приглашённых.
🔄 Особенности поведения
| Ситуация | Поведение |
|---|---|
| Заявка уже обработана | Повторное отклонение может вызвать ошибку (заявка не найдена) |
| Пользователь отозвал заявку | Реакция вызовет ошибку — проверяйте наличие заявки |
| Отклонение после одобрения | Невозможно — пользователь уже в чате, используйте BanChatMember |
| Массовое отклонение | По одному пользователю за раз |
🔗 Связанные реакции
| Реакция | Назначение |
|---|---|
| ApproveChatJoinRequest | Одобрить заявку |
| BanChatMember | Заблокировать пользователя после вступления |
| GetChatMember | Получить информацию об участнике |
🔗 Связанные разделы
| Раздел | Описание |
|---|---|
| Обработчики «Вход/выход» | Обработка событий входа/выхода |
| Условия | Для проверки данных заявки |
| Списки пользователей | Для белых и чёрных списков |
🔗 Быстрая навигация
- Вверх
- Параметры
- Получение данных из update
- Требуемые права
- Примеры
- Особенности
- Частые ошибки