Метод upgradeGift

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

Описание

Повышает обычный подарок до уникального подарка. Требует права бизнес-бота 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
Комментарии