Метод readBusinessMessage

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

Описание

Отмечает входящее сообщение как прочитанное от имени бизнес-аккаунта. Требует право бизнес-бота can_read_messages. Возвращает True при успехе.

Параметр Тип Обязательный Описание
business_connection_id String Да Уникальный идентификатор бизнес-подключения, от имени которого следует отметить сообщение как прочитанное
chat_id Integer Да Уникальный идентификатор чата, в котором было получено сообщение. Чат должен был быть активен в последние 24 часа.
message_id Integer Да Уникальный идентификатор сообщения, которое нужно отметить как прочитанное

Примеры

php

<?php

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

// Параметры для метода readBusinessMessage
$params = [
    'business_connection_id' => 'business_connection_id_example',
    'chat_id' => 123456789,
    'message_id' => 987654321
];

// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl . 'readBusinessMessage');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
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 "Сообщение успешно отмечено как прочитанное\n";
} else {
    echo "Ошибка: " . $result['description'] . "\n";
}

// Альтернативный вариант с использованием file_get_contents
function markBusinessMessageAsRead($botToken, $businessConnectionId, $chatId, $messageId) {
    $url = "https://api.telegram.org/bot{$botToken}/readBusinessMessage";
    
    $data = [
        'business_connection_id' => $businessConnectionId,
        'chat_id' => $chatId,
        'message_id' => $messageId
    ];
    
    $options = [
        'http' => [
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'POST',
            'content' => http_build_query($data),
        ],
    ];
    
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    
    return json_decode($result, true);
}

// Пример использования функции
$result = markBusinessMessageAsRead(
    'YOUR_BOT_TOKEN',
    'business_connection_id_example',
    123456789,
    987654321
);

if ($result['ok']) {
    echo "Сообщение отмечено как прочитанное\n";
    print_r($result);
}

?>

python

import requests

def read_business_message(bot_token, business_connection_id, chat_id, message_id):
    """
    Marks an incoming message as read on behalf of a business account.
    
    Args:
        bot_token (str): Your bot's token
        business_connection_id (str): Unique identifier of the business connection
        chat_id (int): Unique identifier of the chat
        message_id (int): Unique identifier of the message to mark as read
    
    Returns:
        bool: True if successful, False otherwise
    """
    url = f"https://api.telegram.org/bot{bot_token}/readBusinessMessage"
    
    payload = {
        "business_connection_id": business_connection_id,
        "chat_id": chat_id,
        "message_id": message_id
    }
    
    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

# Example usage
if __name__ == "__main__":
    BOT_TOKEN = "YOUR_BOT_TOKEN"
    BUSINESS_CONNECTION_ID = "your_business_connection_id"
    CHAT_ID = 123456789
    MESSAGE_ID = 42
    
    success = read_business_message(
        BOT_TOKEN,
        BUSINESS_CONNECTION_ID,
        CHAT_ID,
        MESSAGE_ID
    )
    
    if success:
        print("Message marked as read successfully")
    else:
        print("Failed to mark message as read")

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

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