RestrictChatMember
RestrictChatMember — метод используется для ограничения доступа пользователя в супергруппе.
Назначение
Позволяет временно или постоянно ограничить возможности участника: запретить отправку определённых типов сообщений, приглашение новых участников, изменение информации о чате и т.д.
Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
chat_id |
Integer/String | ✅ Да | ID чата или @username группы |
user_id |
Integer | ✅ Да | ID пользователя для ограничения |
until_date |
Integer | ❌ Нет | Unix-время снятия ограничений. По умолчанию — 0 (бессрочно) |
Права (разрешения)
Все параметры прав имеют тип Boolean и являются опциональными.
Отправка сообщений
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
can_send_messages |
Разрешена отправка текста, контактов, розыгрышей, списков победителей, счетов, мест и объектов | false |
can_send_audios |
Разрешена отправка аудио | false |
can_send_documents |
Разрешена отправка документов | false |
can_send_photos |
Разрешена отправка фото | false |
can_send_videos |
Разрешена отправка видео | false |
can_send_video_notes |
Разрешена отправка видеосообщений («кружков») | false |
can_send_voice_notes |
Разрешена отправка голосовых сообщений | false |
can_send_polls |
Разрешена отправка опросов и чек-листов | false |
can_send_other_messages |
Разрешена отправка анимаций, игр, стикеров и использование встроенных ботов | false |
can_add_web_page_previews |
Разрешено добавление превью веб-страниц к сообщениям | false |
Управление чатом
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
can_change_info |
Разрешено изменение названия, фото и других настроек чата. Не применяется в публичных супергруппах | false |
can_invite_users |
Разрешено приглашение новых пользователей | false |
can_pin_messages |
Разрешено закрепление сообщений. Не применяется в публичных супергруппах | false |
can_manage_topics |
Разрешено создание тем форума. По умолчанию равно значению can_pin_messages |
false |
⚠️ Важно: Если параметр не указан, он считается запрещённым (
false). Чтобы разрешить действие, установите параметр вtrue.
Параметр use_independent_chat_permissions
Передайте значение true, если разрешения чата установлены независимо. В противном случае разрешения can_send_other_messages и can_add_web_page_previews будут подразумевать разрешения:
can_send_messagescan_send_audioscan_send_documentscan_send_photoscan_send_videoscan_send_video_notescan_send_voice_notes
Разрешение can_send_polls будет подразумевать разрешение can_send_messages.
📅 Формат until_date
Параметр until_date принимает Unix timestamp (количество секунд с 1 января 1970 года).
Как получить значение:
| Способ | Пример | Результат |
|---|---|---|
Макрос !{time} |
`!{time | value:now; plus:1d; output_format:unix}` |
Макрос !{time} |
`!{time | value:now; plus:2h; output_format:unix}` |
Макрос !{time} |
`!{time | value:now; plus:30m; output_format:unix}` |
| Вручную | 1748880000 |
Конкретная дата |
💡 Совет: Если
until_dateменьше текущего времени или равен0, ограничение считается бессрочным.
🔐 Требуемые права бота
| Право | Описание |
|---|---|
| Администратор чата | Бот должен быть администратором чата |
| can_restrict_members | Право ограничивать участников (обязательно) |
⚠️ Важно: Без права
can_restrict_membersреакция вызовет ошибку.
🧪 Примеры использования
Пример 1: Бессрочное ограничение (только текст)
Задача: Разрешить пользователю отправлять только текстовые сообщения, запретить всё остальное.
Параметры RestrictChatMember:
chat_id:${chat.id}user_id:${user.id}can_send_messages:true- (остальные права не указаны —
falseпо умолчанию)
Пример 2: Временное ограничение на 1 час
Задача: Запретить пользователю отправлять медиа на 1 час.
Параметры RestrictChatMember:
chat_id:${chat.id}user_id:${user.id}until_date:!{time|value:now; plus:1h; output_format:unix}can_send_photos:falsecan_send_videos:falsecan_send_audios:falsecan_send_documents:falsecan_send_voice_notes:falsecan_send_video_notes:false
Пример 3: Полная блокировка отправки сообщений (только чтение)
Задача: Запретить пользователю отправлять любые сообщения на 7 дней.
Параметры RestrictChatMember:
chat_id:${chat.id}user_id:${user.id}until_date:!{time|value:now; plus:7d; output_format:unix}can_send_messages:falsecan_send_other_messages:false
Пример 4: Разрешить только текстовые сообщения и ссылки
Задача: Пользователь может писать текст и вставлять ссылки, но не может отправлять медиа.
Параметры RestrictChatMember:
chat_id:${chat.id}user_id:${user.id}can_send_messages:truecan_add_web_page_previews:truecan_send_photos:falsecan_send_videos:falsecan_send_audios:falsecan_send_documents:falsecan_send_voice_notes:falsecan_send_video_notes:false
🔄 Особенности поведения
| Ситуация | Поведение |
|---|---|
| Параметр не указан | Считается false (запрещено) |
| Бот не администратор | Реакция вызовет ошибку |
| У бота нет права can_restrict_members | Реакция вызовет ошибку |
| Публичная супергруппа | can_change_info и can_pin_messages не применяются |
| until_date в прошлом | Ограничение снимается немедленно |
| Попытка ограничить владельца чата | Невозможно (Telegram запрещает) |
⚠️ Частые ошибки и их решение
Ошибка 1: Ограничение не применяется
Причина: Бот не является администратором чата или у него нет права can_restrict_members.
Решение: Добавьте бота в администраторы чата и убедитесь, что у него есть право ограничивать участников.
Ошибка 2: Неверный формат until_date
Причина: Вместо Unix timestamp передана строка или дата в другом формате.
Решение: Используйте макрос !{time} с output_format: unix для получения правильного формата.
Ошибка 3: Ограничения снимаются слишком рано
Причина: until_date был установлен в прошлом или указано неверное значение.
Решение: Проверьте, что until_date больше текущего времени. Используйте макрос !{time} для вычисления.
🔗 Связанные реакции
| Реакция | Назначение |
|---|---|
| BanChatMember | Полная блокировка пользователя |
| UnBanChatMember | Снятие блокировки |
| GetChatMember | Проверка статуса пользователя |
| SetChatPermissions | Глобальные разрешения для всех участников |
🔗 Связанные разделы
| Раздел | Описание |
|---|---|
| Чаты/Каналы в админке | Управление чатами через интерфейс |
| Макрос time | Генерация until_date |
| Обработчики «Вход/выход» | Отслеживание изменений статуса |