Метод setStickerSetThumbnail

Метод устанавливает миниатюру для набора обычных или маскирующих стикеров, принимая изображение, анимацию или видео с определёнными требованиями к формату и размеру.

Описание

Используйте этот метод, чтобы установить миниатюру для обычного или маскирующего набора стикеров. Формат файла миниатюры должен соответствовать формату стикеров в наборе. Возвращает 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.
Комментарии