Описание
Используйте этот метод, чтобы установить миниатюру для обычного или маскирующего набора стикеров. Формат файла миниатюры должен соответствовать формату стикеров в наборе. Возвращает True при успешном выполнении.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| name | String | Да | Название набора стикеров |
| user_id | Integer | Да | Идентификатор пользователя, владельца набора стикеров |
| thumbnail | InputFile или String | Необязательный | Изображение .WEBP или .PNG для миниатюры, размером до 128 килобайт и с точными размерами 100x100 пикселей, либо анимация .TGS с миниатюрой до 32 килобайт (см. https://core.telegram.org/stickers#animation-requirements для технических требований к анимированным стикерам), либо видео .WEBM с миниатюрой до 32 килобайт; см. https://core.telegram.org/stickers#video-requirements для технических требований к видео-стикерам. Передайте file_id в виде строки, чтобы отправить файл, уже существующий на серверах Telegram, передайте HTTP-URL в виде строки, чтобы Telegram загрузил файл из интернета, или загрузите новый файл, используя multipart/form-data. Подробнее об отправке файлов ». Миниатюры для анимированных и видео-наборов стикеров не могут быть загружены через HTTP URL. Если параметр опущен, миниатюра удаляется, и в качестве миниатюры используется первый стикер. |
| format | String | Да | Формат миниатюры, должен быть одним из: «static» для изображения .WEBP или .PNG, «animated» для анимации .TGS или «video» для видео .WEBM |
Примеры
php
<?php
// Токен вашего бота
$botToken = 'YOUR_BOT_TOKEN';
// Параметры для метода setStickerSetThumbnail
$parameters = [
'name' => 'sticker_set_name_by_your_bot', // Название стикерпака
'user_id' => 123456789, // ID владельца стикерпака
'format' => 'static', // Формат миниатюры: static, animated или video
];
// Вариант 1: Использование file_id (файл уже на серверах Telegram)
// $parameters['thumbnail'] = 'AgADBAADZRk5Gx';
// Вариант 2: Использование URL
// $parameters['thumbnail'] = 'https://example.com/thumbnail.png';
// Вариант 3: Загрузка нового файла (multipart/form-data)
$thumbnailPath = '/path/to/thumbnail.png'; // Локальный путь к файлу
if (file_exists($thumbnailPath)) {
$parameters['thumbnail'] = new CURLFile($thumbnailPath);
}
// URL API Telegram
$apiUrl = "https://api.telegram.org/bot{$botToken}/setStickerSetThumbnail";
// Инициализация cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Если загружаем файл, устанавливаем соответствующие заголовки
if (isset($parameters['thumbnail']) && $parameters['thumbnail'] instanceof CURLFile) {
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: multipart/form-data'
]);
}
// Выполнение запроса
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Проверка на ошибки cURL
if (curl_errno($ch)) {
echo 'cURL Error: ' . curl_error($ch);
} else {
// Декодирование ответа
$responseData = json_decode($response, true);
if ($responseData['ok']) {
echo "Thumbnail successfully set!\n";
} else {
echo "Error: " . $responseData['description'] . "\n";
}
}
// Закрытие соединения
curl_close($ch);
// Альтернативный вариант с использованием file_get_contents (только для URL, не для загрузки файлов)
/*
$context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => 'Content-Type: application/json',
'content' => json_encode($parameters)
]
]);
$response = file_get_contents($apiUrl, false, $context);
$responseData = json_decode($response, true);
if ($responseData['ok']) {
echo "Thumbnail successfully set!\n";
} else {
echo "Error: " . $responseData['description'] . "\n";
}
*/
?>
python
import asyncio
from telegram import Bot
from telegram.constants import StickerFormat
async def set_sticker_thumbnail():
bot = Bot("YOUR_BOT_TOKEN")
# Пример 1: Использование file_id (уже загруженного файла)
await bot.set_sticker_set_thumbnail(
name="sticker_set_name_by_your_bot",
user_id=123456789, # ID владельца стикерпака
thumbnail="AgACAgIAAxkBAAIB...", # file_id существующего файла
format=StickerFormat.STATIC # или "static"
)
# Пример 2: Загрузка нового файла с локального диска
with open("thumbnail.png", "rb") as thumb_file:
await bot.set_sticker_set_thumbnail(
name="sticker_set_name_by_your_bot",
user_id=123456789,
thumbnail=thumb_file,
format=StickerFormat.STATIC
)
# Пример 3: Использование URL (только для статических стикеров)
await bot.set_sticker_set_thumbnail(
name="sticker_set_name_by_your_bot",
user_id=123456789,
thumbnail="https://example.com/thumbnail.png",
format=StickerFormat.STATIC
)
# Пример 4: Удаление миниатюры (используется первый стикер)
await bot.set_sticker_set_thumbnail(
name="sticker_set_name_by_your_bot",
user_id=123456789,
format=StickerFormat.STATIC
)
# Пример для анимированных стикеров (TGS)
with open("animated_thumbnail.tgs", "rb") as anim_file:
await bot.set_sticker_set_thumbnail(
name="animated_sticker_set",
user_id=123456789,
thumbnail=anim_file,
format=StickerFormat.ANIMATED # или "animated"
)
# Пример для видео стикеров (WEBM)
with open("video_thumbnail.webm", "rb") as video_file:
await bot.set_sticker_set_thumbnail(
name="video_sticker_set",
user_id=123456789,
thumbnail=video_file,
format=StickerFormat.VIDEO # или "video"
)
# Запуск асинхронной функции
asyncio.run(set_sticker_thumbnail())
История изменений
- API 6.6. Обновлен метод setStickerSetThumbnail: Переименован метод setStickerSetThumb и его параметр thumb в thumbnail
- API 7.2. Обновлен метод setStickerSetThumbnail: Добавлен параметр format
Дополнительно
- InputFile - Объект, представляющий содержимое файла для загрузки через multipart/form-data.