Метод giftPremiumSubscription

Метод для отправки подписки Telegram Premium другому пользователю с указанием длительности и сопроводительного текста.

Описание

Дарит подписку Telegram Premium указанному пользователю. Возвращает True при успешном выполнении.

Параметр Тип Обязательный Описание
user_id Integer Да Уникальный идентификатор целевого пользователя, который получит подписку Telegram Premium
month_count Integer Да Количество месяцев, в течение которых подписка Telegram Premium будет активна для пользователя; должно быть одним из значений: 3, 6 или 12
star_count Integer Да Количество Telegram Stars для оплаты подписки Telegram Premium; должно составлять 1000 за 3 месяца, 1500 за 6 месяцев и 2500 за 12 месяцев
text String Опционально Текст, который будет показан вместе с сервисным сообщением о подписке; 0-128 символов
text_parse_mode String Опционально Режим парсинга сущностей в тексте. Подробнее см. параметры форматирования. Сущности, кроме «жирный», «курсив», «подчёркнутый», «зачёркнутый», «спойлер» и «custom_emoji», игнорируются.
text_entities Array of MessageEntity Опционально Список специальных сущностей в JSON-формате, которые появляются в тексте подарка. Может быть указан вместо text_parse_mode. Сущности, кроме «жирный», «курсив», «подчёркнутый», «зачёркнутый», «спойлер» и «custom_emoji», игнорируются.

Примеры

php

<?php

// Токен вашего бота
$botToken = 'YOUR_BOT_TOKEN';

// ID пользователя, которому дарим подписку
$userId = 123456789;

// Количество месяцев (3, 6 или 12)
$monthCount = 6;

// Количество звезд (1000, 1500 или 2500 соответственно)
$starCount = 1500;

// Текст сообщения (опционально)
$text = '🎁 Вам подарена премиум подписка!';

// Режим парсинга текста (опционально)
$textParseMode = 'HTML';

// Массив сущностей для текста (альтернатива text_parse_mode)
$textEntities = [
    [
        'type' => 'bold',
        'offset' => 0,
        'length' => 5
    ]
];

// Формируем данные для запроса
$data = [
    'user_id' => $userId,
    'month_count' => $monthCount,
    'star_count' => $starCount
];

// Добавляем опциональные параметры, если они указаны
if (!empty($text)) {
    $data['text'] = $text;
}

if (!empty($textParseMode)) {
    $data['text_parse_mode'] = $textParseMode;
}

if (!empty($textEntities)) {
    $data['text_entities'] = json_encode($textEntities);
}

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

// Создаем контекст для запроса
$options = [
    'http' => [
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data)
    ]
];

$context  = stream_context_create($options);

// Отправляем запрос
$result = file_get_contents($apiUrl, false, $context);

// Обрабатываем результат
if ($result === FALSE) {
    echo "Ошибка при отправке запроса\n";
} else {
    $response = json_decode($result, true);
    
    if ($response['ok']) {
        echo "Премиум подписка успешно подарена!\n";
    } else {
        echo "Ошибка: " . $response['description'] . "\n";
    }
}

// Альтернативный вариант с использованием cURL
function giftPremiumWithCurl($botToken, $userId, $monthCount, $starCount, $text = null, $textParseMode = null, $textEntities = null) {
    $data = [
        'user_id' => $userId,
        'month_count' => $monthCount,
        'star_count' => $starCount
    ];
    
    if ($text !== null) {
        $data['text'] = $text;
    }
    
    if ($textParseMode !== null) {
        $data['text_parse_mode'] = $textParseMode;
    }
    
    if ($textEntities !== null) {
        $data['text_entities'] = json_encode($textEntities);
    }
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://api.telegram.org/bot{$botToken}/giftPremiumSubscription");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/x-www-form-urlencoded']);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

// Пример использования cURL функции
// $result = giftPremiumWithCurl($botToken, $userId, $monthCount, $starCount, $text, $textParseMode);
// var_dump($result);

?>

python

import asyncio
from telegram import Bot
from telegram.constants import ParseMode

async def gift_premium_subscription():
    # Инициализация бота с токеном
    bot = Bot(token="YOUR_BOT_TOKEN")
    
    # ID пользователя, которому дарим подписку
    user_id = 123456789
    
    # Количество месяцев (должно быть 3, 6 или 12)
    month_count = 3
    
    # Количество звезд (должно соответствовать количеству месяцев)
    star_count = 1000  # 1000 для 3 месяцев, 1500 для 6, 2500 для 12
    
    # Текст сообщения (опционально)
    text = "🎁 Вам подарена подписка Telegram Premium!"
    
    try:
        # Вызов метода giftPremiumSubscription
        result = await bot.gift_premium_subscription(
            user_id=user_id,
            month_count=month_count,
            star_count=star_count,
            text=text,
            text_parse_mode=ParseMode.HTML  # или ParseMode.MARKDOWN_V2
        )
        
        print(f"Результат: {result}")
        return result
        
    except Exception as e:
        print(f"Ошибка: {e}")
        return False

# Для асинхронного запуска
if __name__ == "__main__":
    asyncio.run(gift_premium_subscription())

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

  • API 9.0. Добавлен метод giftPremiumSubscription

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

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