Сборка business-gifts
Подарки через бизнес-подключение
Десять методов: бот видит подарки пользователя, канала и подключённого аккаунта, а с правами — продаёт, улучшает и передаёт их, меняет настройки приёма, выводит звёзды и дарит Premium.
- +
getUserGifts— подарки пользователя поuser_id. Отдаёт то, что человек оставил у себя на виду; скрытые не попадают. - +
getChatGifts— подарки канала поchat_id. Только каналы: у групп подарков не бывает. - +
getBusinessAccountGifts— подарки подключённого аккаунта, включая скрытые. Нужно право просмотра подарков и звёзд. - +
getBusinessAccountStarBalance— баланс звёзд подключённого аккаунта. - +
convertGiftToStars— продать подарок аккаунта за звёзды. Нужно право продажи подарков; уникальные так продать нельзя. - +
upgradeGift— улучшить подарок до уникального.star_countобязан совпасть с ценой улучшения этого подарка, а если улучшение оплатил даритель — быть нулём. - +
transferGift— передать уникальный подарок пользователю или каналу. В канал — только если бот там может публиковать. - +
setBusinessAccountGiftSettings— какие подарки аккаунт принимает и показывать ли кнопку подарка. Передаются все четыре вида сразу, пропущенный — ошибка. - +
transferBusinessAccountStars— вывести звёзды аккаунта владельцу бота. - +
giftPremiumSubscription— подарить Premium на 1, 3, 6 или 12 месяцев за 2500, 7000, 13000 или 25000 звёзд. Платит владелец бота.
Все методы, кроме двух первых, работают только через business_connection_id и проверяют право, которое человек выдал боту в настройках подключения. Права разные: продажа, передача с улучшением, изменение настроек и вывод звёзд включаются по отдельности, и просмотр подарков сам по себе ничего из этого не разрешает. Если права нет, метод отвечает 400 и говорит, какого именно.
Своего кошелька у бота нет. Подарок Premium оплачивает владелец бота со своего баланса, вывод звёзд отправляет их ему же — так же, как боту приходят звёзды со счетов. Улучшение и продажа идут по балансу подключённого аккаунта, потому что это его подарки.
Изменяющие методы принимают idempotency_key. Один и тот же ключ у одного бота — это один и тот же вызов: повтор вернёт результат первого, а не спишет звёзды второй раз. Без ключа каждый вызов считается новым, поэтому одинаковый перевод звёзд дважды подряд пройдёт дважды.
Подарок для передачи и улучшения задаётся owned_gift_id из getBusinessAccountGifts. Идентификаторы принадлежат конкретному аккаунту: чужой подарок по такому идентификатору не найдётся.