Метод transferGift

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

Описание

Передаёт уникальный подарок, находящийся в собственности, другому пользователю. Требует права бизнес-бота can_transfer_and_upgrade_gifts. Требует права бизнес-бота can_transfer_stars, если передача платная. Возвращает True при успехе.

Параметр Тип Обязательный Описание
business_connection_id String Да Уникальный идентификатор бизнес-подключения
owned_gift_id String Да Уникальный идентификатор обычного подарка, который следует передать
new_owner_chat_id Integer Да Уникальный идентификатор чата, который станет владельцем подарка. Чат должен быть активен в последние 24 часа.
star_count Integer Опционально Количество Telegram Stars, которое будет оплачено за передачу с баланса бизнес-аккаунта. Если значение положительное, то требуется право бизнес-бота can_transfer_stars.

Примеры

php

<?php

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

$data = [
    'business_connection_id' => 'business_connection_12345',
    'owned_gift_id' => 'gift_67890',
    'new_owner_chat_id' => 987654321,
    'star_count' => 100 // Optional: remove if not needed
];

$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 ($httpCode !== 200) {
    echo "Error: HTTP {$httpCode}\n";
    echo "Response: {$response}\n";
} else {
    $result = json_decode($response, true);
    if ($result['ok'] === true) {
        echo "Gift transferred successfully!\n";
    } else {
        echo "Failed: {$result['description']}\n";
    }
}

curl_close($ch);

python

import asyncio
from telegram import Bot

async def transfer_gift_example():
    bot = Bot(token="YOUR_BOT_TOKEN")
    
    try:
        result = await bot.transfer_gift(
            business_connection_id="your_business_connection_id",
            owned_gift_id="unique_gift_id_123",
            new_owner_chat_id=123456789,
            star_count=100  # Optional: only if paid transfer
        )
        print(f"Gift transfer successful: {result}")
    except Exception as e:
        print(f"Error transferring gift: {e}")

# Run the async function
if __name__ == "__main__":
    asyncio.run(transfer_gift_example())

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

  • API 9.0. Добавлен метод transferGift
Комментарии