Метод editChatSubscriptionInviteLink

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

Описание

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

Параметр Тип Обязательный Описание
chat_id Integer или String Да Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername)
invite_link String Да Ссылка-приглашение для редактирования
name String Необязательный Название ссылки-приглашения; 0-32 символа

Примеры

php

<?php

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

// Параметры запроса
$params = [
    'chat_id' => '@channel_username', // или числовой ID
    'invite_link' => 'https://t.me/joinchat/AAAAA_example_link',
    'name' => 'Premium Subscription' // опционально
];

// Инициализация cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: multipart/form-data'
]);

// Выполнение запроса
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    $data = json_decode($response, true);
    
    if ($data['ok']) {
        $inviteLink = $data['result'];
        echo "Edited invite link:\n";
        echo "URL: " . $inviteLink['invite_link'] . "\n";
        echo "Name: " . ($inviteLink['name'] ?? 'N/A') . "\n";
        echo "Creator: " . $inviteLink['creator']['first_name'] . "\n";
        echo "Expire date: " . ($inviteLink['expire_date'] ?? 'Never') . "\n";
        echo "Member limit: " . ($inviteLink['member_limit'] ?? 'Unlimited') . "\n";
        echo "Pending join request count: " . ($inviteLink['pending_join_request_count'] ?? 0) . "\n";
    } else {
        echo "Error: " . $data['description'] . "\n";
    }
}

curl_close($ch);

// Альтернативный вариант с использованием file_get_contents
/*
$options = [
    'http' => [
        'header' => "Content-Type: multipart/form-data\r\n",
        'method' => 'POST',
        'content' => http_build_query($params)
    ]
];
$context = stream_context_create($options);
$response = file_get_contents($apiUrl, false, $context);
$data = json_decode($response, true);
*/
?>

python

import requests

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

# Пример использования
if __name__ == "__main__":
    BOT_TOKEN = "YOUR_BOT_TOKEN"
    CHAT_ID = "@channel_username"  # или числовой ID
    INVITE_LINK = "https://t.me/+abc123def456"
    NEW_NAME = "Premium Subscription"
    
    result = edit_chat_subscription_invite_link(
        bot_token=BOT_TOKEN,
        chat_id=CHAT_ID,
        invite_link=INVITE_LINK,
        name=NEW_NAME
    )
    
    if result:
        print(f"Ссылка отредактирована: {result.get('invite_link')}")
        print(f"Название: {result.get('name')}")
        print(f"Создатель: {result.get('creator', {}).get('username')}")
    else:
        print("Не удалось отредактировать ссылку")

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

  • API 7.9. Добавлен метод editChatSubscriptionInviteLink

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

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