Метод setMyDefaultAdministratorRights

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

Описание

Используйте этот метод, чтобы изменить права администратора по умолчанию, запрашиваемые ботом при его добавлении в качестве администратора в группы или каналы. Эти права будут предложены пользователям, но они могут свободно изменить список перед добавлением бота. Возвращает True при успешном выполнении.

Параметр Тип Обязательный Описание
rights ChatAdministratorRights Необязательный Объект в формате JSON, описывающий новые права администратора по умолчанию. Если не указан, права администратора по умолчанию будут сброшены.
for_channels Boolean Необязательный Передайте True, чтобы изменить права администратора по умолчанию для бота в каналах. В противном случае будут изменены права администратора по умолчанию для бота в группах и супергруппах.

Примеры

php

<?php

// Токен вашего бота
$botToken = 'ВАШ_ТОКЕН_БОТА';

// URL API Telegram
$apiUrl = "https://api.telegram.org/bot{$botToken}/";

// 1. Пример: Установка прав администратора по умолчанию для групп
$rightsForGroups = [
    'rights' => [
        'is_anonymous' => false,
        'can_manage_chat' => true,
        'can_delete_messages' => true,
        'can_manage_video_chats' => true,
        'can_restrict_members' => true,
        'can_promote_members' => false,
        'can_change_info' => true,
        'can_invite_users' => true,
        'can_post_messages' => false, // Неприменимо для групп
        'can_edit_messages' => false, // Неприменимо для групп
        'can_pin_messages' => true,
        'can_manage_topics' => false // Только для супергрупп с темами
    ],
    'for_channels' => false
];

// 2. Пример: Установка прав администратора по умолчанию для каналов
$rightsForChannels = [
    'rights' => [
        'is_anonymous' => false,
        'can_manage_chat' => true,
        'can_delete_messages' => true,
        'can_manage_video_chats' => false, // Неприменимо для каналов
        'can_restrict_members' => false, // Неприменимо для каналов
        'can_promote_members' => false, // Неприменимо для каналов
        'can_change_info' => true,
        'can_invite_users' => true,
        'can_post_messages' => true, // Важно для каналов
        'can_edit_messages' => true, // Важно для каналов
        'can_pin_messages' => true,
        'can_manage_topics' => false // Неприменимо для каналов
    ],
    'for_channels' => true
];

// 3. Пример: Сброс прав по умолчанию (очистка)
$resetRights = [
    'rights' => null,
    'for_channels' => false // или true для каналов
];

// Функция для отправки запроса
function setDefaultAdminRights($params) {
    global $apiUrl;
    
    $url = $apiUrl . 'setMyDefaultAdministratorRights';
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json'
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

// Пример использования:

// Установка прав для групп
$result1 = setDefaultAdminRights($rightsForGroups);
if ($result1['ok']) {
    echo "Права для групп успешно установлены\n";
} else {
    echo "Ошибка: " . $result1['description'] . "\n";
}

// Установка прав для каналов
$result2 = setDefaultAdminRights($rightsForChannels);
if ($result2['ok']) {
    echo "Права для каналов успешно установлены\n";
} else {
    echo "Ошибка: " . $result2['description'] . "\n";
}

// Альтернативный вариант с использованием file_get_contents
function setDefaultAdminRightsSimple($params) {
    global $apiUrl;
    
    $url = $apiUrl . 'setMyDefaultAdministratorRights';
    $options = [
        'http' => [
            'header' => "Content-Type: application/json\r\n",
            'method' => 'POST',
            'content' => json_encode($params)
        ]
    ];
    
    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    
    return json_decode($response, true);
}

// Пример с минимальными правами
$minimalRights = [
    'rights' => [
        'can_delete_messages' => true,
        'can_invite_users' => true
    ],
    'for_channels' => false
];

$result3 = setDefaultAdminRightsSimple($minimalRights);
if ($result3['ok']) {
    echo "Минимальные права установлены\n";
}

?>

python

import requests

def set_my_default_administrator_rights(bot_token, rights=None, for_channels=None):
    """
    Изменяет права администратора по умолчанию для бота
    
    :param bot_token: Токен бота
    :param rights: ChatAdministratorRights объект (опционально)
    :param for_channels: True для каналов, False для групп (опционально)
    :return: Результат запроса
    """
    url = f"https://api.telegram.org/bot{bot_token}/setMyDefaultAdministratorRights"
    
    payload = {}
    
    if rights is not None:
        payload['rights'] = rights
    
    if for_channels is not None:
        payload['for_channels'] = for_channels
    
    response = requests.post(url, json=payload)
    return response.json()

# Пример использования 1: Установка прав для групп
group_rights = {
    "is_anonymous": False,
    "can_manage_chat": True,
    "can_delete_messages": True,
    "can_manage_video_chats": False,
    "can_restrict_members": True,
    "can_promote_members": False,
    "can_change_info": True,
    "can_invite_users": True,
    "can_post_messages": False,
    "can_edit_messages": False,
    "can_pin_messages": True,
    "can_manage_topics": False
}

# Устанавливаем права по умолчанию для групп
result = set_my_default_administrator_rights(
    bot_token="ВАШ_ТОКЕН_БОТА",
    rights=group_rights,
    for_channels=False
)

# Пример использования 2: Установка прав для каналов
channel_rights = {
    "is_anonymous": False,
    "can_manage_chat": True,
    "can_delete_messages": True,
    "can_manage_video_chats": False,
    "can_restrict_members": False,
    "can_promote_members": False,
    "can_change_info": True,
    "can_invite_users": True,
    "can_post_messages": True,  # Важно для каналов
    "can_edit_messages": True,   # Важно для каналов
    "can_pin_messages": True,
    "can_manage_topics": False
}

# Устанавливаем права по умолчанию для каналов
result = set_my_default_administrator_rights(
    bot_token="ВАШ_ТОКЕН_БОТА",
    rights=channel_rights,
    for_channels=True
)

# Пример использования 3: Очистка прав (установка значений по умолчанию)
result = set_my_default_administrator_rights(
    bot_token="ВАШ_ТОКЕН_БОТА"
)

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

  • API 6.0. Добавлен метод setMyDefaultAdministratorRights

Дополнительно

  • ChatAdministratorRights - Объект, описывающий права администратора в чате Telegram, включая управление сообщениями, пользователями, настройками и другими функциями.
Комментарии