EnotPRO Logo EnotPRO

UnBanChatMember

UnBanChatMember — разблокирует ранее заблокированного пользователя в чате/канале.

📝 Назначение

Используется для снятия блокировки с пользователя, который был забанен через BanChatMember. После разблокировки пользователь может вернуться в чат (по ссылке-приглашению или через повторное добавление).

Когда это нужно:

  • Истекло время наказания — снять блокировку
  • Администратор решил помиловать пользователя
  • Ошибочная блокировка — отменить её

⚠️ Важно: По умолчанию эта реакция удаляет пользователя из чата, если он там есть. Если нужно только снять блокировку, но не удалять из чата, используйте параметр only_if_banned.

⚙️ Параметры

Параметр Тип Обязательный Описание
chat.id Integer/String ✅ Да ID чата/канала или @username
user.id Integer ✅ Да ID пользователя для разблокировки
only_if_banned Boolean ❌ Нет Если true — разблокирует только забаненных пользователей, не удаляя из чата

🔐 Требуемые права бота

Право Описание
Бот — администратор чата Обязательное условие
can_restrict_members Право блокировать и разблокировать участников

💡 Совет: Без права can_restrict_members реакция вызовет ошибку.

⚠️ Особенности поведения (параметр only_if_banned)

Telegram API по умолчанию ведёт себя специфически:

Без only_if_banned С only_if_banned: true
Снимает блокировку Снимает блокировку
Удаляет пользователя из чата (если он там есть) Не удаляет пользователя из чата
Пользователь может вернуться по ссылке Пользователь остаётся в чате (если был участником)

💡 Совет: Если вы хотите просто разблокировать пользователя (например, после временного бана), используйте only_if_banned: true. Если хотите удалить пользователя из чата и снять блокировку — не указывайте этот параметр.

🧪 Примеры использования

Пример 1: Простая разблокировка (с удалением из чата)

Задача: Разблокировать пользователя и удалить его из чата (он сможет вернуться по ссылке).

Параметры UnBanChatMember:

  • chat.id: ${chat.id}
  • user.id: ${user.id}

Пример 2: Разблокировка без удаления из чата

Задача: Снять блокировку, но оставить пользователя в чате (если он там есть).

Параметры UnBanChatMember:

  • chat.id: ${chat.id}
  • user.id: ${user.id}
  • only_if_banned: true

Пример 3: Разблокировка после временного бана

Задача: Автоматически разблокировать пользователя после истечения срока бана.

Обработчик: Расписание или отложенное действие

Реакции:

  1. UnBanChatMember
  • chat.id: ${chat.id}
  • user.id: ${user.id}
  • only_if_banned: true
  1. SendMessage → (в личку пользователю) Вы разблокированы в чате.

Пример 4: Разблокировка по команде администратора

Задача: Администратор может разблокировать пользователя командой /unban @username.

Обработчик: Команда /unban @username

Реакции:

  1. TakeUser → получить ID пользователя по username
  2. UnBanChatMember
  • chat.id: ${chat.id}
  • user.id: ${target.from.id}
  • only_if_banned: true
  1. SendMessage → текст: Пользователь разблокирован.

Пример 5: Разблокировка всех забаненных пользователей

Задача: Снять бан со всех пользователей, которые были забанены (требуется предварительно получить список).

Реакции:

  1. GetChatAdministrators → (или загрузить список из кэша)
  2. (Цикл по забаненным пользователям)
  3. UnBanChatMember → для каждого пользователя с only_if_banned: true

🔄 Особенности поведения

Ситуация Поведение
Пользователь не забанен Реакция может не иметь эффекта или удалить из чата (без only_if_banned)
Пользователь не в чате Реакция просто снимает бан (пользователь сможет войти по ссылке)
Бот не администратор Реакция вызовет ошибку
У бота нет права can_restrict_members Реакция вызовет ошибку
only_if_banned: true для незабаненного Ничего не делает

🔗 Связанные реакции

Реакция Назначение
BanChatMember Заблокировать пользователя
RestrictChatMember Ограничить пользователя (не блокировать)
GetChatMember Проверить статус пользователя (забанен или нет)

🔗 Связанные разделы

Раздел Описание
Чаты/Каналы в админке Управление чатами через интерфейс

🔗 Ссылка на официальную документацию

unbanChatMember — Telegram Bot API

© 2025 EnotPRO. Все права защищены.