Описание
Повышает обычный подарок до уникального подарка. Требует права бизнес-бота can_transfer_and_upgrade_gifts. Дополнительно требует права бизнес-бота can_transfer_stars, если повышение платное. Возвращает True при успехе.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| business_connection_id | String | Да | Уникальный идентификатор бизнес-подключения |
| owned_gift_id | String | Да | Уникальный идентификатор обычного подарка, который следует повысить до уникального |
| keep_original_details | Boolean | Опционально | Передайте True, чтобы сохранить оригинальный текст подарка, отправителя и получателя в улучшенном подарке |
| star_count | Integer | Опционально | Количество Telegram Stars, которые будут списаны с баланса бизнес-аккаунта за улучшение. Если gift.prepaid_upgrade_star_count > 0, передайте 0, иначе требуется право бизнес-бота can_transfer_stars и необходимо передать gift.upgrade_star_count. |
Примеры
php
<?php
$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/upgradeGift";
$data = [
'business_connection_id' => 'business_connection_123456',
'owned_gift_id' => 'gift_789012',
'keep_original_details' => true,
'star_count' => 0
];
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($response === false) {
echo 'CURL error: ' . curl_error($ch);
} else {
$responseData = json_decode($response, true);
if ($responseData['ok'] === true) {
echo "Gift upgraded successfully!\n";
} else {
echo "Error: " . $responseData['description'] . "\n";
}
}
curl_close($ch);
?>
python
import requests
def upgrade_gift(bot_token, business_connection_id, owned_gift_id, keep_original_details=None, star_count=None):
"""
Upgrades a regular gift to a unique gift.
Parameters:
- bot_token: Your bot's token
- business_connection_id: Unique identifier of the business connection
- owned_gift_id: Unique identifier of the regular gift to upgrade
- keep_original_details: Optional. Pass True to keep original gift details
- star_count: Optional. Amount of Telegram Stars to pay for the upgrade
Returns:
- True on success, raises exception on error
"""
url = f"https://api.telegram.org/bot{bot_token}/upgradeGift"
payload = {
"business_connection_id": business_connection_id,
"owned_gift_id": owned_gift_id
}
if keep_original_details is not None:
payload["keep_original_details"] = keep_original_details
if star_count is not None:
payload["star_count"] = star_count
response = requests.post(url, json=payload)
result = response.json()
if result.get("ok"):
return True
else:
raise Exception(f"Error: {result.get('description')}")
# Пример использования:
if __name__ == "__main__":
BOT_TOKEN = "YOUR_BOT_TOKEN"
BUSINESS_CONNECTION_ID = "business_connection_id_here"
OWNED_GIFT_ID = "gift_id_here"
try:
# Пример 1: Базовый вызов
success = upgrade_gift(
bot_token=BOT_TOKEN,
business_connection_id=BUSINESS_CONNECTION_ID,
owned_gift_id=OWNED_GIFT_ID
)
print(f"Upgrade successful: {success}")
# Пример 2: С сохранением оригинальных деталей
success = upgrade_gift(
bot_token=BOT_TOKEN,
business_connection_id=BUSINESS_CONNECTION_ID,
owned_gift_id=OWNED_GIFT_ID,
keep_original_details=True
)
print(f"Upgrade with original details successful: {success}")
# Пример 3: С оплатой звездами
success = upgrade_gift(
bot_token=BOT_TOKEN,
business_connection_id=BUSINESS_CONNECTION_ID,
owned_gift_id=OWNED_GIFT_ID,
star_count=100
)
print(f"Paid upgrade successful: {success}")
except Exception as e:
print(f"Error: {e}")
История изменений
- API 9.0. Добавлен метод upgradeGift