Метод getMyName

Метод получает текущее имя бота для указанного языка пользователя.

Описание

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

Параметр Тип Обязательный Описание
language_code String Необязательный Двухбуквенный код языка ISO 639-1 или пустая строка

Примеры

php

<?php

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

// Пример 1: Получение имени бота для языка по умолчанию
$response1 = getBotName();
if ($response1) {
    echo "Имя бота (по умолчанию): " . $response1['name'] . "\n";
}

// Пример 2: Получение имени бота для конкретного языка
$languageCode = 'ru'; // Русский язык
$response2 = getBotName($languageCode);
if ($response2) {
    echo "Имя бота для языка '{$languageCode}': " . $response2['name'] . "\n";
}

// Пример 3: Обработка ошибок
$invalidLanguage = 'invalid';
$response3 = getBotName($invalidLanguage);
if ($response3) {
    echo "Имя бота для '{$invalidLanguage}': " . $response3['name'] . "\n";
} else {
    echo "Не удалось получить имя бота для языка '{$invalidLanguage}'\n";
}

/**
 * Получает текущее имя бота для указанного языка
 *
 * @param string|null $languageCode Двухбуквенный код языка ISO 639-1 или пустая строка
 * @return array|null Массив с данными имени бота или null при ошибке
 */
function getBotName(?string $languageCode = null): ?array
{
    global $apiUrl;
    
    $params = [];
    if ($languageCode !== null) {
        $params['language_code'] = $languageCode;
    }
    
    $url = $apiUrl . 'getMyName';
    if (!empty($params)) {
        $url .= '?' . http_build_query($params);
    }
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    if (curl_errno($ch)) {
        error_log('CURL error: ' . curl_error($ch));
        curl_close($ch);
        return null;
    }
    
    curl_close($ch);
    
    if ($httpCode !== 200) {
        error_log("HTTP error: {$httpCode}");
        return null;
    }
    
    $data = json_decode($response, true);
    
    if (!$data || !$data['ok']) {
        error_log('API error: ' . ($data['description'] ?? 'Unknown error'));
        return null;
    }
    
    return $data['result'];
}

// Альтернативная реализация с использованием file_get_contents
function getBotNameSimple(?string $languageCode = null): ?array
{
    global $apiUrl;
    
    $url = $apiUrl . 'getMyName';
    if ($languageCode !== null) {
        $url .= '?language_code=' . urlencode($languageCode);
    }
    
    $context = stream_context_create([
        'http' => [
            'ignore_errors' => true,
            'timeout' => 10
        ],
        'ssl' => [
            'verify_peer' => false,
            'verify_peer_name' => false
        ]
    ]);
    
    $response = @file_get_contents($url, false, $context);
    
    if ($response === false) {
        error_log('Failed to fetch data from API');
        return null;
    }
    
    $data = json_decode($response, true);
    
    if (!$data || !$data['ok']) {
        error_log('API error: ' . ($data['description'] ?? 'Unknown error'));
        return null;
    }
    
    return $data['result'];
}

// Пример использования с обработкой результата
$botNameData = getBotName('en');
if ($botNameData) {
    echo "Bot Name: {$botNameData['name']}\n";
    if (isset($botNameData['language_code'])) {
        echo "Language Code: {$botNameData['language_code']}\n";
    }
}

?>

python

import requests

def get_my_name(bot_token, language_code=None):
    """
    Получает текущее имя бота для указанного языка пользователя.
    
    Args:
        bot_token (str): Токен вашего бота
        language_code (str, optional): Двухбуквенный код языка ISO 639-1. По умолчанию None.
    
    Returns:
        dict: Ответ от Telegram API с информацией о имени бота
    """
    url = f"https://api.telegram.org/bot{bot_token}/getMyName"
    
    params = {}
    if language_code:
        params['language_code'] = language_code
    
    response = requests.get(url, params=params)
    return response.json()

# Пример использования
if __name__ == "__main__":
    # Замените 'YOUR_BOT_TOKEN' на реальный токен вашего бота
    BOT_TOKEN = 'YOUR_BOT_TOKEN'
    
    # Пример 1: Получение имени бота для языка по умолчанию
    result1 = get_my_name(BOT_TOKEN)
    print("Имя бота (по умолчанию):", result1)
    
    # Пример 2: Получение имени бота для русского языка
    result2 = get_my_name(BOT_TOKEN, language_code='ru')
    print("Имя бота (русский):", result2)
    
    # Пример 3: Получение имени бота для английского языка
    result3 = get_my_name(BOT_TOKEN, language_code='en')
    print("Имя бота (английский):", result3)

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

  • API 6.7. Добавлен метод getMyName

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

  • BotName - Объект, содержащий имя бота Telegram.
Комментарии