Метод addStickerToSet

Метод добавляет новый стикер в набор стикеров, созданный ботом, с ограничениями на количество стикеров в зависимости от типа набора.

Описание

Используйте этот метод, чтобы добавить новый стикер в набор, созданный ботом. Наборы стикеров с эмодзи могут содержать до 200 стикеров. Другие наборы стикеров могут содержать до 120 стикеров. Возвращает True при успешном выполнении.

Параметр Тип Обязательный Описание
user_id Integer Да Идентификатор пользователя, владельца набора стикеров
name String Да Название набора стикеров
sticker InputSticker Да Объект в формате JSON с информацией о добавляемом стикере. Если точно такой же стикер уже был добавлен в набор, то набор не изменяется.

Примеры

php

<?php

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

// Параметры для добавления стикера в набор
$params = [
    'user_id' => 123456789, // ID владельца набора стикеров
    'name' => 'MyStickerSet', // Название набора стикеров
    'sticker' => json_encode([
        'sticker' => new CURLFile('path/to/sticker.png'), // Файл стикера
        'emoji_list' => ['😀'], // Список эмодзи
        'format' => 'static', // Формат: static, animated, video
        'mask_position' => null // Позиция маски (для масок)
    ])
];

// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl . 'addStickerToSet');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: multipart/form-data']);

$response = curl_exec($ch);
curl_close($ch);

// Обработка ответа
$result = json_decode($response, true);
if ($result['ok']) {
    echo "Стикер успешно добавлен в набор!";
} else {
    echo "Ошибка: " . $result['description'];
}

// Альтернативный вариант с использованием библиотеки (например, telegram-bot/api)
use TelegramBot\Api\BotApi;

$bot = new BotApi($botToken);
try {
    $bot->addStickerToSet(
        123456789,
        'MyStickerSet',
        [
            'sticker' => new CURLFile('path/to/sticker.png'),
            'emoji_list' => ['😀'],
            'format' => 'static'
        ]
    );
    echo "Стикер успешно добавлен!";
} catch (\Exception $e) {
    echo "Ошибка: " . $e->getMessage();
}

?>

python

import asyncio
from telegram import Bot, InputSticker
from telegram.constants import StickerFormat

async def add_sticker_to_set_example():
    bot = Bot(token="YOUR_BOT_TOKEN")
    
    # Создаем объект InputSticker
    sticker = InputSticker(
        sticker=open("sticker.webp", "rb"),  # или "sticker.png" для статичных стикеров
        emoji_list=["😊"],  # список эмодзи, связанных со стикером
        format=StickerFormat.STATIC  # или StickerFormat.ANIMATED, StickerFormat.VIDEO
    )
    
    try:
        result = await bot.add_sticker_to_set(
            user_id=123456789,  # ID владельца набора стикеров
            name="MyStickerSet",  # название набора стикеров
            sticker=sticker
        )
        print(f"Стикер успешно добавлен: {result}")
    except Exception as e:
        print(f"Ошибка: {e}")

# Для синхронного использования (если не используете asyncio):
def add_sticker_to_set_sync():
    import asyncio
    asyncio.run(add_sticker_to_set_example())

# Пример с дополнительными параметрами для InputSticker:
async def add_sticker_with_mask_position():
    bot = Bot(token="YOUR_BOT_TOKEN")
    
    sticker = InputSticker(
        sticker=open("sticker.png", "rb"),
        emoji_list=["🎭"],
        format=StickerFormat.STATIC,
        mask_position=None,  # опционально: объект MaskPosition
        keywords=["funny", "meme"]  # опционально: ключевые слова для поиска
    )
    
    await bot.add_sticker_to_set(
        user_id=123456789,
        name="MyStickerSet",
        sticker=sticker
    )

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

  • API 3.2. Добавлен метод addStickerToSet
  • API 4.7. Обновлен метод addStickerToSet: Добавлена возможность добавлять анимированные стикеры с параметром tgs_sticker
  • API 5.7. Обновлен метод addStickerToSet: Добавлен параметр webm_sticker
  • API 6.6. Обновлен метод addStickerToSet: Заменены параметры на параметр sticker типа InputSticker

Дополнительно

  • InputSticker - Объект, описывающий стикер для добавления в набор стикеров, включая его файл, формат, связанные эмодзи и дополнительные параметры.
Комментарии