Метод getMe

Метод проверки токена бота, возвращающий основную информацию о нём в виде объекта User.

Описание

Простой метод для проверки токена аутентификации вашего бота. Не требует параметров. Возвращает основную информацию о боте в виде объекта User.

Примеры

php

<?php
$botToken = 'YOUR_BOT_TOKEN_HERE';
$apiUrl = "https://api.telegram.org/bot{$botToken}/getMe";

// Вариант 1: Использование file_get_contents
$response = file_get_contents($apiUrl);
$result = json_decode($response, true);

if ($result['ok']) {
    $botInfo = $result['result'];
    echo "Bot ID: " . $botInfo['id'] . "\n";
    echo "Bot Username: @" . $botInfo['username'] . "\n";
    echo "First Name: " . $botInfo['first_name'] . "\n";
    echo "Can Join Groups: " . ($botInfo['can_join_groups'] ? 'Yes' : 'No') . "\n";
    echo "Can Read Messages: " . ($botInfo['can_read_all_group_messages'] ? 'Yes' : 'No') . "\n";
    echo "Supports Inline: " . ($botInfo['supports_inline_queries'] ? 'Yes' : 'No') . "\n";
} else {
    echo "Error: " . $result['description'];
}

// Вариант 2: Использование cURL (более надежный)
function getBotInfo($token) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://api.telegram.org/bot{$token}/getMe");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

// Пример использования cURL варианта
$botData = getBotInfo($botToken);

if ($botData['ok']) {
    echo "\n--- cURL Result ---\n";
    echo "Bot Username: @" . $botData['result']['username'] . "\n";
    echo "Bot Name: " . $botData['result']['first_name'] . "\n";
    
    // Проверка, является ли бот премиум
    if (isset($botData['result']['is_premium'])) {
        echo "Premium Bot: " . ($botData['result']['is_premium'] ? 'Yes' : 'No') . "\n";
    }
    
    // Проверка, может ли бот добавлять веб-превью
    if (isset($botData['result']['added_to_attachment_menu'])) {
        echo "Added to Attachment Menu: " . 
             ($botData['result']['added_to_attachment_menu'] ? 'Yes' : 'No') . "\n";
    }
} else {
    echo "Authentication failed. Check your bot token.";
}

// Вариант 3: Использование класса (более структурированный подход)
class TelegramBot {
    private $token;
    private $apiUrl;
    
    public function __construct($token) {
        $this->token = $token;
        $this->apiUrl = "https://api.telegram.org/bot{$token}/";
    }
    
    public function getMe() {
        $url = $this->apiUrl . "getMe";
        $response = file_get_contents($url);
        return json_decode($response, true);
    }
    
    public function getBotUsername() {
        $data = $this->getMe();
        return $data['ok'] ? $data['result']['username'] : null;
    }
    
    public function getBotId() {
        $data = $this->getMe();
        return $data['ok'] ? $data['result']['id'] : null;
    }
}

// Пример использования класса
$bot = new TelegramBot($botToken);
$botInfo = $bot->getMe();

if ($botInfo['ok']) {
    echo "\n--- Class Result ---\n";
    echo "Bot ID from class: " . $bot->getBotId() . "\n";
    echo "Username from class: @" . $bot->getBotUsername() . "\n";
    
    // Дополнительная информация
    $user = $botInfo['result'];
    echo "Language Code: " . ($user['language_code'] ?? 'Not specified') . "\n";
    
    // Проверка возможности
    echo "Can Connect to Business: " . 
         (isset($user['can_connect_to_business']) && $user['can_connect_to_business'] ? 'Yes' : 'No') . "\n";
}
?>

python

import requests

def get_me(bot_token):
    """
    Получить информацию о боте
    
    Args:
        bot_token (str): Токен вашего бота
        
    Returns:
        dict: Информация о боте в формате JSON
    """
    url = f"https://api.telegram.org/bot{bot_token}/getMe"
    
    try:
        response = requests.get(url)
        response.raise_for_status()
        return response.json()
    except requests.exceptions.RequestException as e:
        print(f"Ошибка при выполнении запроса: {e}")
        return None

# Пример использования
if __name__ == "__main__":
    # Замените 'YOUR_BOT_TOKEN' на реальный токен вашего бота
    BOT_TOKEN = "YOUR_BOT_TOKEN"
    
    result = get_me(BOT_TOKEN)
    
    if result and result.get("ok"):
        bot_info = result["result"]
        print(f"ID бота: {bot_info['id']}")
        print(f"Имя бота: {bot_info['first_name']}")
        print(f"Username: @{bot_info.get('username', 'не указан')}")
        print(f"Поддерживает inline-режим: {bot_info.get('supports_inline_queries', False)}")
    else:
        print(f"Ошибка: {result.get('description', 'Неизвестная ошибка')}")

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

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