Метод setStickerKeywords

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

Описание

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

Параметр Тип Обязательный Описание
sticker String Да Идентификатор файла стикера
keywords Array of String Необязательный Сериализованный в JSON список из 0-20 поисковых ключевых слов для стикера общей длиной до 64 символов

Примеры

php

<?php

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

// Данные для метода setStickerKeywords
$stickerFileId = 'CAACAgIAAxkBAAIB...'; // Идентификатор стикера
$keywords = ['funny', 'cat', 'meme', 'lol']; // Ключевые слова для поиска

// Подготовка данных
$postData = [
    'sticker' => $stickerFileId,
    'keywords' => json_encode($keywords)
];

// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl . 'setStickerKeywords');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
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 "Ключевые слова успешно обновлены!\n";
} else {
    echo "Ошибка: " . $result['description'] . "\n";
}

// Альтернативный вариант с использованием file_get_contents
function setStickerKeywords($sticker, $keywords = []) {
    global $botToken;
    
    $url = "https://api.telegram.org/bot{$botToken}/setStickerKeywords";
    
    $data = [
        'sticker' => $sticker,
        'keywords' => $keywords
    ];
    
    $options = [
        'http' => [
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'POST',
            'content' => http_build_query($data)
        ]
    ];
    
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    
    return json_decode($result, true);
}

// Пример использования функции
$result = setStickerKeywords('CAACAgIAAxkBAAIB...', ['animal', 'pet', 'cute']);
if ($result['ok']) {
    echo "Успешно!\n";
}

// Пример с пустым массивом ключевых слов (удаление всех ключевых слов)
$result = setStickerKeywords('CAACAgIAAxkBAAIB...', []);
if ($result['ok']) {
    echo "Все ключевые слова удалены!\n";
}

?>

python

import requests

def set_sticker_keywords(bot_token, sticker, keywords=None):
    """
    Изменяет ключевые слова для поиска стикера.
    
    :param bot_token: Токен бота
    :param sticker: Идентификатор файла стикера
    :param keywords: Список ключевых слов (0-20 элементов, до 64 символов суммарно)
    :return: Результат запроса
    """
    url = f"https://api.telegram.org/bot{bot_token}/setStickerKeywords"
    
    payload = {
        "sticker": sticker
    }
    
    if keywords is not None:
        payload["keywords"] = keywords
    
    response = requests.post(url, json=payload)
    return response.json()

# Пример использования
if __name__ == "__main__":
    # Замените на реальный токен бота
    BOT_TOKEN = "YOUR_BOT_TOKEN"
    
    # Идентификатор стикера (можно получить из сообщения со стикером)
    STICKER_FILE_ID = "CAACAgIAAxkBAAIB..."
    
    # Пример ключевых слов для стикера с котиком
    KEYWORDS = ["cat", "kitty", "animal", "cute", "pet"]
    
    try:
        result = set_sticker_keywords(BOT_TOKEN, STICKER_FILE_ID, KEYWORDS)
        print(f"Результат: {result}")
    except Exception as e:
        print(f"Ошибка: {e}")

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

  • API 6.6. Добавлен метод setStickerKeywords
Комментарии