Описание
Возвращает подарки, принадлежащие чату. При успешном выполнении возвращает OwnedGifts.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer или String | Да | Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername) |
| exclude_unsaved | Boolean | Необязательный | Передайте True, чтобы исключить подарки, которые не сохранены на странице профиля чата. Всегда True, если у бота нет права администратора can_post_messages в канале. |
| exclude_saved | Boolean | Необязательный | Передайте True, чтобы исключить подарки, которые сохранены на странице профиля чата. Всегда False, если у бота нет права администратора can_post_messages в канале. |
| exclude_unlimited | Boolean | Необязательный | Передайте True, чтобы исключить подарки, которые можно приобрести неограниченное количество раз |
| exclude_limited_upgradable | Boolean | Необязательный | Передайте True, чтобы исключить подарки, которые можно приобрести ограниченное количество раз и которые можно улучшить до уникальных |
| exclude_limited_non_upgradable | Boolean | Необязательный | Передайте True, чтобы исключить подарки, которые можно приобрести ограниченное количество раз и которые нельзя улучшить до уникальных |
| exclude_from_blockchain | Boolean | Необязательный | Передайте True, чтобы исключить подарки, которые были назначены из блокчейна TON и не могут быть перепроданы или переданы в Telegram |
| exclude_unique | Boolean | Необязательный | Передайте True, чтобы исключить уникальные подарки |
| sort_by_price | Boolean | Необязательный | Передайте True, чтобы отсортировать результаты по цене подарка вместо даты отправки. Сортировка применяется до разбиения на страницы. |
| offset | String | Необязательный | Смещение первой записи для возврата, полученное от предыдущего запроса; используйте пустую строку, чтобы получить первую порцию результатов |
| limit | Integer | Необязательный | Максимальное количество возвращаемых подарков; 1-100. По умолчанию 100 |
Примеры
php
<?php
$botToken = 'ВАШ_ТОКЕН_БОТА';
$apiUrl = "https://api.telegram.org/bot{$botToken}/getChatGifts";
// Данные для отправки (можно использовать ID чата или username канала)
$data = [
'chat_id' => -1001234567890, // ID чата или @username канала
'exclude_unsaved' => true, // Исключить несохраненные подарки (опционально)
'exclude_saved' => false, // Исключить сохраненные подарки (опционально)
'exclude_unlimited' => true, // Исключить безлимитные подарки (опционально)
'exclude_limited_upgradable' => false, // Исключить улучшаемые лимитированные (опционально)
'exclude_limited_non_upgradable' => false, // Исключить неулучшаемые лимитированные (опционально)
'exclude_from_blockchain' => true, // Исключить подарки из блокчейна (опционально)
'exclude_unique' => false, // Исключить уникальные подарки (опционально)
'sort_by_price' => true, // Сортировать по цене (опционально)
'offset' => '', // Смещение для пагинации (опционально)
'limit' => 50 // Лимит результатов 1-100 (опционально, по умолчанию 100)
];
// Для канала можно использовать username
// $data['chat_id'] = '@channelusername';
// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// Обработка ответа
$result = json_decode($response, true);
if ($result['ok'] ?? false) {
$gifts = $result['result'];
// Вывод информации о подарках чата
echo "Найдено подарков в чате: " . count($gifts['gifts'] ?? []) . "\n";
echo "Следующее смещение: " . ($gifts['next_offset'] ?? 'нет') . "\n";
// Вывод списка подарков
if (!empty($gifts['gifts'])) {
foreach ($gifts['gifts'] as $index => $gift) {
echo "\nПодарок #" . ($index + 1) . ":\n";
echo "ID: " . ($gift['id'] ?? 'N/A') . "\n";
echo "Название: " . ($gift['title'] ?? 'N/A') . "\n";
echo "Цена: " . ($gift['price'] ?? 'N/A') . "\n";
echo "Тип: " . ($gift['type'] ?? 'N/A') . "\n";
echo "Сохранен: " . (isset($gift['is_saved']) ? ($gift['is_saved'] ? 'да' : 'нет') : 'N/A') . "\n";
}
}
} else {
echo "Ошибка: " . ($result['description'] ?? 'Неизвестная ошибка') . "\n";
}
?>
python
import requests
import json
bot_token = 'ВАШ_ТОКЕН_БОТА'
api_url = f'https://api.telegram.org/bot{bot_token}/getChatGifts'
# Данные для отправки (можно использовать ID чата или username канала)
data = {
'chat_id': -1001234567890, # ID чата или @username канала
'exclude_unsaved': True, # Исключить несохраненные подарки (опционально)
'exclude_saved': False, # Исключить сохраненные подарки (опционально)
'exclude_unlimited': True, # Исключить безлимитные подарки (опционально)
'exclude_limited_upgradable': False, # Исключить улучшаемые лимитированные (опционально)
'exclude_limited_non_upgradable': False, # Исключить неулучшаемые лимитированные (опционально)
'exclude_from_blockchain': True, # Исключить подарки из блокчейна (опционально)
'exclude_unique': False, # Исключить уникальные подарки (опционально)
'sort_by_price': True, # Сортировать по цене (опционально)
'offset': '', # Смещение для пагинации (опционально)
'limit': 50 # Лимит результатов 1-100 (опционально, по умолчанию 100)
}
# Для канала можно использовать username
# data['chat_id'] = '@channelusername'
# Отправка запроса
response = requests.post(api_url, json=data)
# Обработка ответа
if response.status_code == 200:
result = response.json()
if result.get('ok'):
gifts = result['result']
# Вывод информации о подарках чата
print(f"Найдено подарков в чате: {len(gifts.get('gifts', []))}")
print(f"Следующее смещение: {gifts.get('next_offset', 'нет')}")
# Вывод списка подарков
if gifts.get('gifts'):
for i, gift in enumerate(gifts['gifts'], 1):
print(f"\nПодарок #{i}:")
print(f" ID: {gift.get('id', 'N/A')}")
print(f" Название: {gift.get('title', 'N/A')}")
print(f" Цена: {gift.get('price', 'N/A')}")
print(f" Тип: {gift.get('type', 'N/A')}")
print(f" Уникальный: {gift.get('is_unique', False)}")
print(f" Сохранен: {gift.get('is_saved', 'N/A')}")
print(f" Из блокчейна: {gift.get('is_from_blockchain', False)}")
else:
print(f"Ошибка: {result.get('description', 'Неизвестная ошибка')}")
else:
print(f"Ошибка HTTP: {response.status_code}")
История изменений
- API 9.3. Добавлен метод getChatGifts
Дополнительно
- OwnedGifts - Объект содержит список подарков, принадлежащих пользователю или чату, с информацией об их количестве и возможностью постраничной загрузки.