Метод setMyDescription

Этот метод позволяет изменить описание бота, которое видно в пустом чате.

Описание

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

Параметр Тип Обязательный Описание
description String Опционально Новое описание бота; 0-512 символов. Передайте пустую строку, чтобы удалить специальное описание для данного языка.
language_code String Опционально Двухбуквенный код языка ISO 639-1. Если пусто, описание будет применено ко всем пользователям, для языка которых нет специального описания.

Примеры

php

<?php

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

// Пример 1: Установка описания для всех языков
$data1 = [
    'description' => 'Этот бот помогает управлять задачами и напоминаниями. Просто отправьте ему задачу!'
];

// Пример 2: Установка описания для конкретного языка
$data2 = [
    'description' => 'This bot helps manage tasks and reminders. Just send it a task!',
    'language_code' => 'en'
];

// Пример 3: Удаление описания для конкретного языка
$data3 = [
    'description' => '',
    'language_code' => 'ru'
];

// Функция для отправки запроса
function setBotDescription($data, $apiUrl) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $apiUrl . 'setMyDescription');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

// Использование примеров
$result1 = setBotDescription($data1, $apiUrl);
$result2 = setBotDescription($data2, $apiUrl);
$result3 = setBotDescription($data3, $apiUrl);

// Проверка результатов
if ($result1['ok']) {
    echo "Описание для всех языков успешно обновлено\n";
}

if ($result2['ok']) {
    echo "Английское описание успешно обновлено\n";
}

if ($result3['ok']) {
    echo "Русское описание успешно удалено\n";
}

// Альтернативный вариант с использованием file_get_contents
function setBotDescriptionAlt($data, $apiUrl) {
    $options = [
        'http' => [
            'header' => "Content-Type: application/json\r\n",
            'method' => 'POST',
            'content' => json_encode($data)
        ]
    ];
    
    $context = stream_context_create($options);
    $response = file_get_contents($apiUrl . 'setMyDescription', false, $context);
    
    return json_decode($response, true);
}

// Пример с валидацией длины описания
function setValidatedDescription($description, $languageCode = null, $apiUrl) {
    if (strlen($description) > 512) {
        throw new Exception('Описание не должно превышать 512 символов');
    }
    
    $data = ['description' => $description];
    
    if ($languageCode !== null) {
        $data['language_code'] = $languageCode;
    }
    
    return setBotDescription($data, $apiUrl);
}

try {
    $validatedResult = setValidatedDescription(
        'Короткое описание бота',
        'ru',
        $apiUrl
    );
} catch (Exception $e) {
    echo 'Ошибка: ' . $e->getMessage();
}

?>

python

import requests

def set_my_description(bot_token, description=None, language_code=None):
    """
    Изменяет описание бота.
    
    Args:
        bot_token (str): Токен вашего бота
        description (str, optional): Новое описание бота (0-512 символов). 
                                     Пустая строка удаляет описание для указанного языка.
        language_code (str, optional): Двухбуквенный код языка (ISO 639-1). 
                                      Если не указан, применяется ко всем языкам без специального описания.
    
    Returns:
        bool: True в случае успеха
    """
    url = f"https://api.telegram.org/bot{bot_token}/setMyDescription"
    
    params = {}
    if description is not None:
        params['description'] = description
    if language_code is not None:
        params['language_code'] = language_code
    
    response = requests.post(url, json=params)
    result = response.json()
    
    if result.get('ok'):
        return True
    else:
        raise Exception(f"Ошибка: {result.get('description')}")

# Пример использования:
if __name__ == "__main__":
    # Замените 'YOUR_BOT_TOKEN' на реальный токен вашего бота
    BOT_TOKEN = 'YOUR_BOT_TOKEN'
    
    try:
        # Пример 1: Установка описания на английском
        success = set_my_description(
            bot_token=BOT_TOKEN,
            description="Этот бот помогает управлять задачами и напоминаниями.",
            language_code="en"
        )
        print(f"Описание на английском установлено: {success}")
        
        # Пример 2: Установка описания на русском
        success = set_my_description(
            bot_token=BOT_TOKEN,
            description="Этот бот помогает управлять задачами и напоминаниями.",
            language_code="ru"
        )
        print(f"Описание на русском установлено: {success}")
        
        # Пример 3: Удаление описания для определенного языка
        success = set_my_description(
            bot_token=BOT_TOKEN,
            description="",
            language_code="en"
        )
        print(f"Описание на английском удалено: {success}")
        
        # Пример 4: Установка общего описания (для всех языков)
        success = set_my_description(
            bot_token=BOT_TOKEN,
            description="Универсальный бот-помощник"
        )
        print(f"Общее описание установлено: {success}")
        
    except Exception as e:
        print(f"Произошла ошибка: {e}")

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

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