Метод close

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

Описание

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

Примеры

php

<?php

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

// Удаляем вебхук перед закрытием бота (рекомендуется по документации)
$deleteWebhookUrl = "https://api.telegram.org/bot{$botToken}/deleteWebhook";
file_get_contents($deleteWebhookUrl);

// Выполняем запрос close
$response = file_get_contents($apiUrl);
$result = json_decode($response, true);

if ($result['ok']) {
    echo "Бот успешно закрыт\n";
    print_r($result);
} else {
    echo "Ошибка: " . $result['description'] . "\n";
    print_r($result);
}

// Альтернативный вариант с cURL
function closeBot($token) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://api.telegram.org/bot{$token}/close");
    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);
}

// Использование
$result = closeBot($botToken);
if ($result['ok']) {
    echo "Экземпляр бота закрыт\n";
}

?>

python

import requests

def close_bot(bot_token):
    """
    Закрывает инстанс бота перед перемещением на другой сервер.
    """
    url = f"https://api.telegram.org/bot{bot_token}/close"
    
    try:
        response = requests.get(url)
        result = response.json()
        
        if result.get('ok'):
            print("Бот успешно закрыт")
            return True
        else:
            print(f"Ошибка: {result.get('description')}")
            return False
            
    except Exception as e:
        print(f"Ошибка при выполнении запроса: {e}")
        return False

# Пример использования
if __name__ == "__main__":
    BOT_TOKEN = "ВАШ_ТОКЕН_БОТА"
    close_bot(BOT_TOKEN)

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

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