Метод setChatStickerSet

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

Описание

Используйте этот метод, чтобы установить новый набор стикеров для супергруппы. Бот должен быть администратором в чате для работы этого метода и иметь соответствующие права администратора. Используйте поле can_set_sticker_set, опционально возвращаемое в запросах getChat, чтобы проверить, может ли бот использовать этот метод. Возвращает True при успешном выполнении.

Параметр Тип Обязательный Описание
chat_id Целое число или строка Да Уникальный идентификатор целевого чата или имя пользователя целевой супергруппы (в формате @supergroupusername)
sticker_set_name Строка Да Название набора стикеров, который будет установлен как набор стикеров группы

Примеры

php

<?php

$botToken = 'YOUR_BOT_TOKEN';
$chatId = '@supergroupusername'; // или числовой ID чата
$stickerSetName = 'MyStickerSetName';

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

$data = [
    'chat_id' => $chatId,
    'sticker_set_name' => $stickerSetName
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

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

$result = json_decode($response, true);

if ($result['ok']) {
    echo "Стикер-пак успешно установлен для группы!";
} else {
    echo "Ошибка: " . $result['description'];
}

// Альтернативный вариант с file_get_contents
/*
$options = [
    'http' => [
        'method' => 'POST',
        'header' => 'Content-Type: application/x-www-form-urlencoded',
        'content' => http_build_query($data)
    ]
];

$context = stream_context_create($options);
$response = file_get_contents($apiUrl, false, $context);
$result = json_decode($response, true);
*/

python

import requests

def set_chat_sticker_set(bot_token, chat_id, sticker_set_name):
    """
    Устанавливает новый набор стикеров для супергруппы.
    
    Args:
        bot_token (str): Токен вашего бота
        chat_id (int | str): ID чата или username супергруппы
        sticker_set_name (str): Название набора стикеров
    
    Returns:
        bool: True в случае успеха, иначе False
    """
    url = f"https://api.telegram.org/bot{bot_token}/setChatStickerSet"
    
    payload = {
        "chat_id": chat_id,
        "sticker_set_name": sticker_set_name
    }
    
    try:
        response = requests.post(url, json=payload)
        response.raise_for_status()
        result = response.json()
        
        if result.get("ok"):
            return True
        else:
            print(f"Ошибка: {result.get('description')}")
            return False
            
    except requests.exceptions.RequestException as e:
        print(f"Ошибка запроса: {e}")
        return False

# Пример использования:
if __name__ == "__main__":
    # Замените значения на реальные
    BOT_TOKEN = "ВАШ_ТОКЕН_БОТА"
    CHAT_ID = -1001234567890  # или "@supergroupusername"
    STICKER_SET_NAME = "MyAwesomeStickers"
    
    success = set_chat_sticker_set(BOT_TOKEN, CHAT_ID, STICKER_SET_NAME)
    
    if success:
        print("Набор стикеров успешно установлен!")
    else:
        print("Не удалось установить набор стикеров")

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

  • API 3.4. Добавлен метод setChatStickerSet

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

  • getChat - Метод для получения актуальной информации о чате, возвращающий объект ChatFullInfo.
Комментарии