Метод getCustomEmojiStickers

Метод для получения информации о пользовательских эмодзи-стикерах по их идентификаторам.

Описание

Используйте этот метод, чтобы получить информацию о пользовательских эмодзи-стикерах по их идентификаторам. Возвращает массив объектов Sticker.

Параметр Тип Обязательный Описание
custom_emoji_ids Массив строк Да JSON-сериализованный список идентификаторов пользовательских эмодзи. Можно указать не более 200 идентификаторов.

Примеры

php

<?php

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

// Пример идентификаторов кастомных эмодзи
$customEmojiIds = [
    '5384589073810966781',
    '5384589073810966782'
];

// Подготовка данных
$data = [
    'custom_emoji_ids' => json_encode($customEmojiIds)
];

// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl . 'getCustomEmojiStickers');
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']) {
    $stickers = $result['result'];
    
    foreach ($stickers as $sticker) {
        echo "ID стикера: " . $sticker['file_id'] . "\n";
        echo "Уникальный ID: " . $sticker['file_unique_id'] . "\n";
        echo "Тип: " . $sticker['type'] . "\n";
        echo "Ширина: " . $sticker['width'] . "\n";
        echo "Высота: " . $sticker['height'] . "\n";
        echo "Анимированный: " . ($sticker['is_animated'] ? 'Да' : 'Нет') . "\n";
        echo "Видео: " . ($sticker['is_video'] ? 'Да' : 'Нет') . "\n";
        
        if (isset($sticker['thumbnail'])) {
            echo "Есть миниатюра\n";
        }
        
        if (isset($sticker['emoji'])) {
            echo "Эмодзи: " . $sticker['emoji'] . "\n";
        }
        
        if (isset($sticker['set_name'])) {
            echo "Набор: " . $sticker['set_name'] . "\n";
        }
        
        if (isset($sticker['premium_animation'])) {
            echo "Есть премиум анимация\n";
        }
        
        if (isset($sticker['mask_position'])) {
            echo "Позиция маски: " . print_r($sticker['mask_position'], true) . "\n";
        }
        
        if (isset($sticker['custom_emoji_id'])) {
            echo "ID кастомного эмодзи: " . $sticker['custom_emoji_id'] . "\n";
        }
        
        echo "Размер файла: " . $sticker['file_size'] . " байт\n";
        echo "---\n";
    }
} else {
    echo "Ошибка: " . $result['description'] . "\n";
}

// Альтернативный вариант с использованием file_get_contents
function getCustomEmojiStickers($emojiIds) {
    $botToken = 'YOUR_BOT_TOKEN';
    $url = "https://api.telegram.org/bot{$botToken}/getCustomEmojiStickers";
    
    $data = [
        'custom_emoji_ids' => $emojiIds
    ];
    
    $options = [
        'http' => [
            'header' => "Content-Type: application/json\r\n",
            'method' => 'POST',
            'content' => json_encode($data)
        ]
    ];
    
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    
    return json_decode($result, true);
}

// Пример использования функции
$emojiIds = ['5384589073810966781'];
$stickersInfo = getCustomEmojiStickers($emojiIds);

if ($stickersInfo['ok']) {
    // Обработка полученных стикеров
    foreach ($stickersInfo['result'] as $sticker) {
        // Использование данных о стикере
        $fileId = $sticker['file_id'];
        // ... дальнейшая обработка
    }
}

?>

python

import requests

def get_custom_emoji_stickers(bot_token, custom_emoji_ids):
    """
    Получает информацию о пользовательских эмодзи-стикерах по их идентификаторам.
    
    Args:
        bot_token (str): Токен вашего бота
        custom_emoji_ids (list): Список идентификаторов пользовательских эмодзи (максимум 200)
    
    Returns:
        list: Список объектов Sticker или пустой список в случае ошибки
    """
    url = f"https://api.telegram.org/bot{bot_token}/getCustomEmojiStickers"
    
    # Ограничиваем количество эмодзи до 200 (ограничение API)
    if len(custom_emoji_ids) > 200:
        custom_emoji_ids = custom_emoji_ids[:200]
    
    payload = {
        "custom_emoji_ids": custom_emoji_ids
    }
    
    try:
        response = requests.post(url, json=payload)
        response.raise_for_status()
        result = response.json()
        
        if result.get("ok"):
            return result.get("result", [])
        else:
            print(f"Ошибка: {result.get('description')}")
            return []
            
    except requests.exceptions.RequestException as e:
        print(f"Ошибка при выполнении запроса: {e}")
        return []
    except ValueError as e:
        print(f"Ошибка при обработке JSON: {e}")
        return []

# Пример использования
if __name__ == "__main__":
    # Замените на ваш токен бота
    BOT_TOKEN = "ВАШ_ТОКЕН_БОТА"
    
    # Пример идентификаторов пользовательских эмодзи
    # Эти идентификаторы можно получить из сообщений с пользовательскими эмодзи
    custom_emoji_ids = [
        "AgADAgADw6cxG4VSYESP1Yb1xQABO4hBAAEC",
        "AgADAgADxKcxG4VSYESP1Yb1xQABO4hBAAEC",
        "AgADAgADxacxG4VSYESP1Yb1xQABO4hBAAEC"
    ]
    
    # Получаем информацию о стикерах
    stickers = get_custom_emoji_stickers(BOT_TOKEN, custom_emoji_ids)
    
    # Выводим результат
    if stickers:
        print(f"Получено {len(stickers)} стикеров:")
        for i, sticker in enumerate(stickers, 1):
            print(f"\nСтикер {i}:")
            print(f"  ID: {sticker.get('file_id')}")
            print(f"  Уникальный ID: {sticker.get('file_unique_id')}")
            print(f"  Тип: {sticker.get('type')}")
            print(f"  Ширина: {sticker.get('width')}")
            print(f"  Высота: {sticker.get('height')}")
            print(f"  Анимированный: {sticker.get('is_animated')}")
            print(f"  Видео: {sticker.get('is_video')}")
            
            # Информация о миниатюре (если есть)
            if 'thumbnail' in sticker:
                thumb = sticker['thumbnail']
                print(f"  Миниатюра: {thumb.get('file_id')}")
                
            # Информация о маске (если есть)
            if 'mask_position' in sticker:
                mask = sticker['mask_position']
                print(f"  Позиция маски: {mask.get('point')}")
                
            # Размер файла (если есть)
            if 'file_size' in sticker:
                print(f"  Размер файла: {sticker['file_size']} байт")
    else:
        print("Не удалось получить информацию о стикерах")

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

  • API 6.2. Добавлен метод getCustomEmojiStickers

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

  • Sticker - Объект, представляющий стикер в Telegram, содержащий информацию о его типе, размере, формате и дополнительных характеристиках.
Комментарии