Описание
Используйте этот метод, чтобы разбанить ранее заблокированного пользователя в супергруппе или канале. Пользователь не вернётся в группу или канал автоматически, но сможет присоединиться по ссылке и т.д. Бот должен быть администратором для работы этого метода. По умолчанию этот метод гарантирует, что после вызова пользователь не является участником чата, но сможет присоединиться к нему. Поэтому если пользователь является участником чата, он также будет удалён из чата. Если вы не хотите этого, используйте параметр only_if_banned. Возвращает True при успехе.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer или String | Да | Уникальный идентификатор целевой группы или имя пользователя целевой супергруппы или канала (в формате @channelusername) |
| user_id | Integer | Да | Уникальный идентификатор целевого пользователя |
| only_if_banned | Boolean | Опционально | Ничего не делать, если пользователь не забанен |
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/";
// Параметры для разбана пользователя
$chatId = -1001234567890; // ID супергруппы или канала (можно использовать @username)
$userId = 123456789; // ID пользователя, которого нужно разбанить
$onlyIfBanned = true; // Опционально: разбанить только если пользователь забанен
// Подготовка данных
$data = [
'chat_id' => $chatId,
'user_id' => $userId,
'only_if_banned' => $onlyIfBanned
];
// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl . 'unbanChatMember');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Для локального тестирования
$response = curl_exec($ch);
curl_close($ch);
// Обработка ответа
$result = json_decode($response, true);
if ($result['ok']) {
echo "Пользователь успешно разбанен!";
} else {
echo "Ошибка: " . $result['description'];
}
// Альтернативный вариант с использованием file_get_contents
/*
$query = http_build_query($data);
$response = file_get_contents($apiUrl . 'unbanChatMember?' . $query);
$result = json_decode($response, true);
if ($result['ok']) {
echo "Пользователь успешно разбанен!";
} else {
echo "Ошибка: " . $result['description'];
}
*/
?>
python
import asyncio
from telegram import Bot
async def unban_user():
bot = Bot(token="YOUR_BOT_TOKEN")
chat_id = -1001234567890 # ID группы/канала или @username
user_id = 123456789 # ID пользователя для разбана
try:
# Разбан пользователя
result = await bot.unban_chat_member(
chat_id=chat_id,
user_id=user_id,
only_if_banned=True # Опционально: разбанить только если забанен
)
if result:
print(f"Пользователь {user_id} успешно разбанен в чате {chat_id}")
else:
print("Операция не выполнена (пользователь не был забанен)")
except Exception as e:
print(f"Ошибка: {e}")
# Запуск асинхронной функции
asyncio.run(unban_user())