UnBanSenderChat
UnBanSenderChat — разблокирует канал, ранее заблокированный в чате.
📝 Назначение
Используется для снятия блокировки с канала, который был забанен через BanChatSenderChat. После разблокировки канал снова может отправлять сообщения в группу от своего имени.
Когда это нужно:
- Истекло время временной блокировки канала
- Администратор решил разблокировать канал
- Ошибочная блокировка — отменить её
💡 Совет: Эта реакция работает только для каналов-отправителей, которые были заблокированы через
BanChatSenderChat. Для разблокировки обычных пользователей используйтеUnBanChatMember.
⚙️ Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat.id | Integer/String | ✅ Да | ID чата (группы/супергруппы), в котором разблокируется канал |
| sender.chat.id | Integer | ✅ Да | ID канала, который нужно разблокировать |
📥 Получение ID канала-отправителя
Когда канал отправляет сообщение в группу, в update появляется поле sender_chat. ID канала доступен по пути:
${update.message.sender_chat.id}
Для разблокировки по команде администратора может потребоваться предварительное получение ID канала.
🔐 Требуемые права бота
| Право | Описание |
|---|---|
| Бот — администратор чата | Обязательное условие |
| can_restrict_members | Право блокировать и разблокировать участников (включая каналы-отправители) |
💡 Совет: Без права
can_restrict_membersреакция вызовет ошибку.
🧪 Примеры использования
Пример 1: Разблокировка канала, который был забанен
Задача: Разблокировать канал, ранее заблокированный в группе.
Параметры UnBanSenderChat:
chat.id:${chat.id}sender.chat.id:-100987654321(ID канала)
Пример 2: Разблокировка канала, только что отправившего сообщение
Задача: Если канал был забанен ошибочно — разблокировать его при следующем сообщении.
Обработчик: Тип «Сообщение» (любое)
Условие: Has → ${update.message.sender_chat.id}
Реакции:
UnBanSenderChat→
chat.id:${chat.id}sender.chat.id:${update.message.sender_chat.id}
SendMessage→ текст:Канал ${update.message.sender_chat.title} разблокирован.
Пример 3: Разблокировка по команде администратора
Задача: Администратор может разблокировать канал командой /unban_channel @channel_username.
Обработчик: Команда /unban_channel @channel_username
Реакции:
TakeUser→ получение ID канала по usernameUnBanSenderChat→
chat.id:${chat.id}sender.chat.id:${target.chat.id}
SendMessage→ текст:Канал разблокирован.
Пример 4: Разблокировка временно заблокированного канала
Задача: Автоматически разблокировать канал после истечения срока временной блокировки.
Обработчик: Расписание или отложенное действие
Реакции:
UnBanSenderChat→
chat.id:${chat.id}sender.chat.id:${channel_id}
🔄 Особенности поведения
| Ситуация | Поведение |
|---|---|
| Канал не был заблокирован | Реакция не вызывает ошибку, просто не имеет эффекта |
| Канал уже разблокирован | Реакция не имеет эффекта |
| Бот не администратор | Реакция вызовет ошибку |
| У бота нет права can_restrict_members | Реакция вызовет ошибку |
| Разблокировка обычного пользователя | Не работает — используйте UnBanChatMember |
🔗 Связанные реакции
| Реакция | Назначение |
|---|---|
| BanChatSenderChat | Заблокировать канал в чате |
| UnBanChatMember | Разблокировать пользователя |
| GetChatMember | Проверить статус |
🔗 Связанные разделы
| Раздел | Описание |
|---|---|
| Чаты/Каналы в админке | Управление чатами через интерфейс |