Метод editMessageChecklist

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

Описание

Используйте этот метод для редактирования чек-листа от имени подключенного бизнес-аккаунта. В случае успеха возвращается отредактированное Message.

Параметр Тип Обязательный Описание
business_connection_id String Да Уникальный идентификатор бизнес-подключения, от имени которого будет отправлено сообщение
chat_id Integer Да Уникальный идентификатор целевого чата
message_id Integer Да Уникальный идентификатор целевого сообщения
checklist InputChecklist Да Объект в формате JSON для нового чек-листа
reply_markup InlineKeyboardMarkup Необязательный Объект в формате JSON для новой встроенной клавиатуры сообщения

Примеры

php

<?php

// Токен вашего бота
$botToken = 'YOUR_BOT_TOKEN';
$apiUrl = "https://api.telegram.org/bot{$botToken}/editMessageChecklist";

// Параметры запроса
$params = [
    'business_connection_id' => '1234567890', // ID бизнес-подключения
    'chat_id' => -1001234567890, // ID чата (может быть отрицательным для групп/каналов)
    'message_id' => 123, // ID сообщения с чеклистом
    'checklist' => json_encode([
        'title' => 'Обновленный список задач',
        'items' => [
            ['text' => 'Задача 1', 'state' => 'completed'],
            ['text' => 'Задача 2', 'state' => 'active'],
            ['text' => 'Новая задача 3', 'state' => 'hidden']
        ]
    ]),
    'reply_markup' => json_encode([
        'inline_keyboard' => [
            [
                ['text' => 'Обновить', 'callback_data' => 'refresh_checklist'],
                ['text' => 'Закрыть', 'callback_data' => 'close_checklist']
            ]
        ]
    ])
];

// Отправка запроса через cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: multipart/form-data'
]);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($response === false) {
    echo 'Ошибка cURL: ' . curl_error($ch);
} else {
    $responseData = json_decode($response, true);
    
    if ($responseData['ok'] === true) {
        echo "Чеклист успешно обновлен!\n";
        echo "ID сообщения: " . $responseData['result']['message_id'] . "\n";
    } else {
        echo "Ошибка: " . $responseData['description'] . "\n";
    }
}

curl_close($ch);

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

$context = stream_context_create($options);
$response = file_get_contents($apiUrl, false, $context);

if ($response !== false) {
    $responseData = json_decode($response, true);
    var_dump($responseData);
}
*/

?>

python

import requests

def edit_message_checklist(bot_token, business_connection_id, chat_id, message_id, checklist, reply_markup=None):
    """
    Редактирует чеклист от имени подключенного бизнес-аккаунта
    
    :param bot_token: Токен бота
    :param business_connection_id: Уникальный идентификатор бизнес-подключения
    :param chat_id: ID чата
    :param message_id: ID сообщения
    :param checklist: Объект InputChecklist
    :param reply_markup: InlineKeyboardMarkup (опционально)
    :return: Результат запроса
    """
    
    url = f"https://api.telegram.org/bot{bot_token}/editMessageChecklist"
    
    payload = {
        "business_connection_id": business_connection_id,
        "chat_id": chat_id,
        "message_id": message_id,
        "checklist": checklist
    }
    
    if reply_markup:
        payload["reply_markup"] = reply_markup
    
    response = requests.post(url, json=payload)
    return response.json()

# Пример использования
if __name__ == "__main__":
    BOT_TOKEN = "YOUR_BOT_TOKEN"
    BUSINESS_CONNECTION_ID = "your_business_connection_id"
    CHAT_ID = -1001234567890
    MESSAGE_ID = 12345
    
    # Пример InputChecklist объекта
    checklist_data = {
        "title": "Еженедельные задачи",
        "items": [
            {"text": "Проверить почту", "checked": True},
            {"text": "Составить отчет", "checked": False},
            {"text": "Совещание с командой", "checked": False}
        ]
    }
    
    # Пример InlineKeyboardMarkup (опционально)
    reply_markup_data = {
        "inline_keyboard": [[
            {"text": "Обновить", "callback_data": "refresh_checklist"}
        ]]
    }
    
    result = edit_message_checklist(
        bot_token=BOT_TOKEN,
        business_connection_id=BUSINESS_CONNECTION_ID,
        chat_id=CHAT_ID,
        message_id=MESSAGE_ID,
        checklist=checklist_data,
        reply_markup=reply_markup_data
    )
    
    print(result)

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

  • API 9.1. Добавлен метод editMessageChecklist

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

  • Message - Это основной объект, представляющий сообщение в Telegram, который содержит информацию об отправителе, чате, контенте (текст, медиа, служебные данные) и различные метаданные.
  • InputChecklist - Объект для создания чек-листа с заголовком, задачами и настройками доступа.
  • InlineKeyboardMarkup - Объект для создания встроенной клавиатуры, которая отображается непосредственно в сообщении.
Комментарии