Метод unpinAllChatMessages

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

Описание

Используйте этот метод, чтобы очистить список закреплённых сообщений в чате. В личных чатах и прямых сообщениях каналов не требуется дополнительных прав для открепления всех закреплённых сообщений. С другой стороны, бот должен быть администратором с правом 'can_pin_messages' или правом 'can_edit_messages', чтобы открепить все закреплённые сообщения в группах и каналах соответственно. Возвращает True при успешном выполнении.

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

Примеры

php

<?php

$botToken = 'YOUR_BOT_TOKEN';
$chatId = 'CHAT_ID_OR_USERNAME'; // Например: 123456789 или '@channelname'

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

$postData = [
    'chat_id' => $chatId
];

$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); // Отключить для локального тестирования

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);

if ($result['ok']) {
    echo "Все закрепленные сообщения успешно откреплены!";
} else {
    echo "Ошибка: " . $result['description'];
}

// Альтернативный вариант с использованием file_get_contents
/*
$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);
$result = json_decode($response, true);
*/
?>

python

import requests

def unpin_all_chat_messages(bot_token, chat_id):
    """
    Открепляет все закрепленные сообщения в чате.
    
    Args:
        bot_token (str): Токен вашего бота
        chat_id (int or str): ID чата или username канала
    
    Returns:
        bool: True в случае успеха, иначе False
    """
    url = f"https://api.telegram.org/bot{bot_token}/unpinAllChatMessages"
    
    payload = {
        "chat_id": chat_id
    }
    
    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 = "YOUR_BOT_TOKEN_HERE"
    
    # Пример с числовым ID чата
    chat_id = -1001234567890
    success = unpin_all_chat_messages(BOT_TOKEN, chat_id)
    print(f"Результат: {success}")
    
    # Пример с username канала
    channel_username = "@my_test_channel"
    success = unpin_all_chat_messages(BOT_TOKEN, channel_username)
    print(f"Результат: {success}")

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

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