Описание
Используйте этот метод, чтобы получить список администраторов в чате, которые не являются ботами. Возвращает массив объектов ChatMember.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Целое число или строка | Да | Уникальный идентификатор целевого чата или имя пользователя целевой супергруппы или канала (в формате @channelusername) |
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$chatId = 'CHAT_ID_OR_USERNAME'; // Например: 123456789 или '@channelname'
$apiUrl = "https://api.telegram.org/bot{$botToken}/getChatAdministrators";
$data = [
'chat_id' => $chatId
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
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);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode != 200) {
echo "Ошибка HTTP: {$httpCode}\n";
echo "Ответ: {$response}\n";
curl_close($ch);
exit;
}
curl_close($ch);
$result = json_decode($response, true);
if (!$result['ok']) {
echo "Ошибка API: {$result['description']}\n";
exit;
}
$administrators = $result['result'];
echo "Администраторы чата:\n";
foreach ($administrators as $admin) {
$user = $admin['user'];
$status = $admin['status'];
echo "ID: {$user['id']}\n";
echo "Имя: {$user['first_name']}\n";
if (isset($user['last_name'])) {
echo "Фамилия: {$user['last_name']}\n";
}
if (isset($user['username'])) {
echo "Юзернейм: @{$user['username']}\n";
}
echo "Статус: {$status}\n";
echo "---\n";
}
// Альтернативный вариант с использованием file_get_contents
/*
$options = [
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => http_build_query($data)
]
];
$context = stream_context_create($options);
$response = file_get_contents($apiUrl, false, $context);
$result = json_decode($response, true);
*/
python
import requests
def get_chat_administrators(bot_token, chat_id):
"""
Получает список администраторов чата (не ботов).
Args:
bot_token (str): Токен вашего бота
chat_id (int or str): ID чата или username канала/супергруппы
Returns:
list: Список объектов ChatMember или None в случае ошибки
"""
url = f"https://api.telegram.org/bot{bot_token}/getChatAdministrators"
params = {
'chat_id': chat_id
}
try:
response = requests.post(url, params=params)
response.raise_for_status()
result = response.json()
if result['ok']:
return result['result']
else:
print(f"Ошибка: {result.get('description')}")
return None
except requests.exceptions.RequestException as e:
print(f"Ошибка запроса: {e}")
return None
except ValueError as e:
print(f"Ошибка парсинга JSON: {e}")
return None
# Пример использования:
if __name__ == "__main__":
# Замените на ваш токен и ID чата
BOT_TOKEN = "ВАШ_ТОКЕН_БОТА"
CHAT_ID = "@your_channel" # или 123456789 для ID чата
admins = get_chat_administrators(BOT_TOKEN, CHAT_ID)
if admins:
print(f"Найдено администраторов: {len(admins)}")
for admin in admins:
user = admin['user']
status = admin['status']
print(f"- {user.get('first_name', '')} {user.get('last_name', '')} "
f"(@{user.get('username', 'нет')}): {status}")
История изменений
- API 2.1.. Добавлен метод getChatAdministrators
Дополнительно
- ChatMember - Объект, описывающий информацию об участнике чата и его статусе в Telegram.