Метод unbanChatMember

Метод снимает бан с пользователя в супергруппе или канале, позволяя ему присоединиться по ссылке, но не возвращая автоматически.

Описание

Используйте этот метод, чтобы разбанить ранее заблокированного пользователя в супергруппе или канале. Пользователь не вернётся в группу или канал автоматически, но сможет присоединиться по ссылке и т.д. Бот должен быть администратором для работы этого метода. По умолчанию этот метод гарантирует, что после вызова пользователь не является участником чата, но сможет присоединиться к нему. Поэтому если пользователь является участником чата, он также будет удалён из чата. Если вы не хотите этого, используйте параметр 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())

История изменений

  • API 2.0. Добавлен метод unbanChatMember
  • API 3.0. Обновлен метод unbanChatMember: Теперь работает и в каналах
  • API 5.0. Обновлен метод unbanChatMember: Добавлен параметр only_if_banned
Комментарии