Описание
Используйте этот метод, чтобы забанить чат канала в супергруппе или канале. Пока чат не будет unbanChatSenderChat, владелец забаненного чата не сможет отправлять сообщения от имени любого из своих каналов. Бот должен быть администратором в супергруппе или канале для работы этого метода и иметь соответствующие права администратора. Возвращает True при успешном выполнении.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer или String | Да | Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername) |
| sender_chat_id | Integer | Да | Уникальный идентификатор целевого чата-отправителя |
Примеры
php
<?php
// Токен вашего бота
$botToken = 'YOUR_BOT_TOKEN';
// ID чата (супергруппы или канала) или его username
$chatId = -1001234567890; // или '@channelusername'
// ID канала, который нужно забанить
$senderChatId = -1009876543210;
// URL для вызова метода banChatSenderChat
$apiUrl = "https://api.telegram.org/bot{$botToken}/banChatSenderChat";
// Подготовка данных
$data = [
'chat_id' => $chatId,
'sender_chat_id' => $senderChatId
];
// Инициализация cURL
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: multipart/form-data']);
// Выполнение запроса
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Проверка на ошибки cURL
if (curl_errno($ch)) {
echo 'Ошибка cURL: ' . curl_error($ch);
} else {
// Декодирование ответа
$result = json_decode($response, true);
// Проверка успешности запроса
if ($result['ok'] === true) {
echo "Канал успешно забанен!";
} else {
echo "Ошибка: " . $result['description'];
}
}
// Закрытие соединения
curl_close($ch);
// Альтернативный вариант с использованием file_get_contents (требует allow_url_fopen = On)
/*
$options = [
'http' => [
'method' => 'POST',
'header' => 'Content-Type: multipart/form-data',
'content' => http_build_query($data)
]
];
$context = stream_context_create($options);
$response = file_get_contents($apiUrl, false, $context);
$result = json_decode($response, true);
if ($result['ok'] === true) {
echo "Канал успешно забанен!";
} else {
echo "Ошибка: " . $result['description'];
}
*/
?>
python
import requests
def ban_chat_sender_chat(bot_token, chat_id, sender_chat_id):
"""
Блокирует канал в супергруппе или канале.
Args:
bot_token (str): Токен вашего бота
chat_id (int | str): ID чата или username канала
sender_chat_id (int): ID блокируемого канала
Returns:
bool: True в случае успеха
"""
url = f"https://api.telegram.org/bot{bot_token}/banChatSenderChat"
params = {
'chat_id': chat_id,
'sender_chat_id': sender_chat_id
}
response = requests.post(url, json=params)
result = response.json()
if result.get('ok'):
return True
else:
print(f"Ошибка: {result.get('description')}")
return False
# Пример использования
if __name__ == "__main__":
BOT_TOKEN = "ВАШ_ТОКЕН_БОТА"
# Пример с числовым chat_id
success = ban_chat_sender_chat(
bot_token=BOT_TOKEN,
chat_id=-1001234567890, # ID супергруппы
sender_chat_id=-1009876543210 # ID блокируемого канала
)
# Пример с username канала
success2 = ban_chat_sender_chat(
bot_token=BOT_TOKEN,
chat_id="@my_channel", # username канала
sender_chat_id=-1001111111111
)
if success:
print("Канал успешно заблокирован")
История изменений
- API 5.5. Добавлен метод banChatSenderChat
Дополнительно
- unbanChatSenderChat - Метод для разблокировки ранее заблокированного канала в супергруппе или канале, требующий прав администратора у бота.