Метод revokeChatInviteLink

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

Описание

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

Параметр Тип Обязательный Описание
chat_id Целое число или Строка Да Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername)
invite_link Строка Да Пригласительная ссылка для отзыва

Примеры

php

<?php

$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/";

// Параметры для отзыва пригласительной ссылки
$chatId = -1001234567890; // ID чата или канала (можно использовать username)
$inviteLink = 'https://t.me/joinchat/AbCdEfGhIjKlMnOpQrStUv'; // Ссылка для отзыва

// Подготовка данных
$data = [
    'chat_id' => $chatId,
    'invite_link' => $inviteLink
];

// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl . 'revokeChatInviteLink');
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']) {
    $revokedLink = $result['result'];
    
    echo "Ссылка успешно отозвана!\n";
    echo "Информация об отозванной ссылке:\n";
    echo "Ссылка: " . $revokedLink['invite_link'] . "\n";
    echo "Создатель: " . ($revokedLink['creator']['username'] ?? 'Не указан') . "\n";
    echo "Создана: " . date('Y-m-d H:i:s', $revokedLink['date']) . "\n";
    echo "Срок действия: " . ($revokedLink['expire_date'] ? date('Y-m-d H:i:s', $revokedLink['expire_date']) : 'Бессрочная') . "\n";
    echo "Лимит участников: " . ($revokedLink['member_limit'] ?? 'Не ограничен') . "\n";
    echo "Одобрение участников: " . ($revokedLink['creates_join_request'] ? 'Требуется' : 'Не требуется') . "\n";
    echo "Отозвана: " . ($revokedLink['is_revoked'] ? 'Да' : 'Нет') . "\n";
    echo "Основная: " . ($revokedLink['is_primary'] ? 'Да' : 'Нет') . "\n";
} else {
    echo "Ошибка: " . $result['description'] . "\n";
    echo "Код ошибки: " . $result['error_code'] . "\n";
}

// Альтернативный вариант с использованием file_get_contents
/*
$context = stream_context_create([
    'http' => [
        'method' => 'POST',
        'header' => 'Content-Type: application/x-www-form-urlencoded',
        'content' => http_build_query($data)
    ]
]);

$response = file_get_contents($apiUrl . 'revokeChatInviteLink', false, $context);
$result = json_decode($response, true);

if ($result['ok']) {
    // Обработка успешного ответа
    print_r($result['result']);
}
*/

?>

python

import requests

def revoke_chat_invite_link(bot_token, chat_id, invite_link):
    """
    Отзывает ссылку-приглашение, созданную ботом.
    
    Args:
        bot_token (str): Токен вашего бота
        chat_id (int | str): ID чата или username канала
        invite_link (str): Ссылка-приглашение для отзыва
    
    Returns:
        dict: Объект ChatInviteLink или None в случае ошибки
    """
    url = f"https://api.telegram.org/bot{bot_token}/revokeChatInviteLink"
    
    payload = {
        "chat_id": chat_id,
        "invite_link": invite_link
    }
    
    try:
        response = requests.post(url, json=payload)
        response.raise_for_status()
        return response.json()["result"]
    except requests.exceptions.RequestException as e:
        print(f"Ошибка при отзыве ссылки: {e}")
        return None

# Пример использования
if __name__ == "__main__":
    # Конфигурация
    BOT_TOKEN = "YOUR_BOT_TOKEN"
    CHAT_ID = -1001234567890  # Или "@channelusername"
    INVITE_LINK = "https://t.me/joinchat/AbCdEfGhIjKlMnOpQrStUv"
    
    # Отзыв ссылки
    revoked_link = revoke_chat_invite_link(BOT_TOKEN, CHAT_ID, INVITE_LINK)
    
    if revoked_link:
        print(f"Ссылка отозвана:")
        print(f"Ссылка: {revoked_link.get('invite_link')}")
        print(f"Создатель: {revoked_link.get('creator', {}).get('username')}")
        print(f"Использований: {revoked_link.get('member_limit', 'без ограничений')}")
        print(f"Срок действия: {revoked_link.get('expire_date', 'бессрочная')}")

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

  • API 5.1. Добавлен метод revokeChatInviteLink

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

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