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