Описание
Дарит подписку 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 представляет специальную форматированную сущность в тексте сообщения, такую как упоминания, хэштеги, ссылки или стилизованный текст.