Метод setChatTitle

Метод изменяет название чата, если бот имеет права администратора.

Описание

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

Параметр Тип Обязательный Описание
chat_id Integer или String Да Уникальный идентификатор целевого чата или имя пользователя целевого канала (в формате @channelusername)
title String Да Новое название чата, 1-128 символов

Примеры

php

<?php

// Токен вашего бота
$botToken = 'YOUR_BOT_TOKEN';

// ID чата или username канала
$chatId = '@yourchannelusername'; // или числовой ID, например: -1001234567890

// Новый заголовок чата
$newTitle = 'Новое название чата';

// URL для запроса
$apiUrl = "https://api.telegram.org/bot{$botToken}/setChatTitle";

// Подготовка данных
$postData = [
    'chat_id' => $chatId,
    'title' => $newTitle
];

// Инициализация cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
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); // Отключить проверку SSL для локального тестирования

// Выполнение запроса
$response = curl_exec($ch);

// Проверка на ошибки
if ($response === false) {
    echo 'Ошибка cURL: ' . curl_error($ch);
} else {
    $responseData = json_decode($response, true);
    
    if ($responseData['ok']) {
        echo "Название чата успешно изменено!";
    } else {
        echo "Ошибка: " . $responseData['description'];
    }
}

// Закрытие соединения
curl_close($ch);

// Альтернативный вариант с использованием file_get_contents (требует allow_url_fopen = On)
/*
$context = stream_context_create([
    'http' => [
        'method' => 'POST',
        'header' => 'Content-Type: application/x-www-form-urlencoded',
        'content' => http_build_query($postData)
    ]
]);

$response = file_get_contents($apiUrl, false, $context);
$responseData = json_decode($response, true);

if ($responseData['ok']) {
    echo "Название чата успешно изменено!";
} else {
    echo "Ошибка: " . $responseData['description'];
}
*/

?>

python

import requests

def set_chat_title(bot_token, chat_id, title):
    """
    Изменяет название чата.
    
    Args:
        bot_token (str): Токен вашего бота
        chat_id (int or str): ID чата или username канала
        title (str): Новое название чата (1-128 символов)
    
    Returns:
        bool: True в случае успеха, иначе False
    """
    url = f"https://api.telegram.org/bot{bot_token}/setChatTitle"
    
    payload = {
        "chat_id": chat_id,
        "title": title
    }
    
    try:
        response = requests.post(url, json=payload)
        response.raise_for_status()
        result = response.json()
        
        if result.get("ok"):
            return True
        else:
            print(f"Ошибка: {result.get('description')}")
            return False
            
    except requests.exceptions.RequestException as e:
        print(f"Ошибка при выполнении запроса: {e}")
        return False

# Пример использования
if __name__ == "__main__":
    # Замените на ваш токен бота
    BOT_TOKEN = "ВАШ_ТОКЕН_БОТА"
    
    # Пример с ID группы
    chat_id = -1001234567890  # ID группы (отрицательное число)
    new_title = "Новое название группы"
    
    # Пример с username канала
    # chat_id = "@my_channel"  # Username канала
    # new_title = "Новое название канала"
    
    success = set_chat_title(BOT_TOKEN, chat_id, new_title)
    
    if success:
        print("Название чата успешно изменено!")
    else:
        print("Не удалось изменить название чата")

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

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