Метод deleteBusinessMessages

Метод удаляет сообщения от имени бизнес-аккаунта с определёнными правами доступа.

Описание

Удалить сообщения от имени бизнес-аккаунта. Требуется право бизнес-бота can_delete_sent_messages для удаления сообщений, отправленных самим ботом, или право бизнес-бота can_delete_all_messages для удаления любых сообщений. Возвращает True при успешном выполнении.

Параметр Тип Обязательный Описание
business_connection_id String Да Уникальный идентификатор бизнес-подключения, от имени которого удаляются сообщения
message_ids Array of Integer Да Список идентификаторов сообщений (1-100) в формате JSON для удаления, где все сообщения должны быть из одного чата. Ограничения на удаляемые сообщения смотрите в deleteMessage

Примеры

php

<?php

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

$data = [
    'business_connection_id' => 'business_connection_id_here',
    'message_ids' => [123, 456, 789] // Array of message IDs to delete (1-100 items)
];

// Using cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

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

// Process response
$result = json_decode($response, true);
if ($result['ok']) {
    echo "Messages deleted successfully";
} else {
    echo "Error: " . $result['description'];
}

// Alternative using file_get_contents with stream context
$options = [
    'http' => [
        'header'  => "Content-Type: application/json\r\n",
        'method'  => 'POST',
        'content' => json_encode($data)
    ]
];
$context = stream_context_create($options);
$response = file_get_contents($apiUrl, false, $context);
$result = json_decode($response, true);

// Check result
if ($result['ok']) {
    echo "Messages deleted successfully";
} else {
    echo "Error: " . $result['description'];
}

?>

python

import requests

def delete_business_messages(bot_token, business_connection_id, message_ids):
    """
    Delete messages on behalf of a business account.
    
    Args:
        bot_token (str): Telegram Bot API token
        business_connection_id (str): Unique identifier of the business connection
        message_ids (list): List of message IDs to delete (1-100 items)
    
    Returns:
        bool: True if successful, False otherwise
    """
    url = f"https://api.telegram.org/bot{bot_token}/deleteBusinessMessages"
    
    payload = {
        "business_connection_id": business_connection_id,
        "message_ids": message_ids
    }
    
    try:
        response = requests.post(url, json=payload)
        response.raise_for_status()
        result = response.json()
        
        if result.get("ok"):
            return True
        else:
            print(f"Error: {result.get('description')}")
            return False
            
    except requests.exceptions.RequestException as e:
        print(f"Request failed: {e}")
        return False
    except ValueError as e:
        print(f"Invalid JSON response: {e}")
        return False

# Пример использования
if __name__ == "__main__":
    # Конфигурация
    BOT_TOKEN = "YOUR_BOT_TOKEN"
    BUSINESS_CONNECTION_ID = "your_business_connection_id"
    
    # ID сообщений для удаления (пример)
    messages_to_delete = [123, 124, 125]
    
    # Вызов метода
    success = delete_business_messages(
        bot_token=BOT_TOKEN,
        business_connection_id=BUSINESS_CONNECTION_ID,
        message_ids=messages_to_delete
    )
    
    if success:
        print(f"Successfully deleted {len(messages_to_delete)} messages")
    else:
        print("Failed to delete messages")

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

  • API 9.0. Добавлен метод deleteBusinessMessages

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

  • deleteMessage - Метод для удаления сообщений в чатах с учётом временных ограничений и прав бота.
Комментарии