Метод sendChecklist

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

Описание

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

Параметр Тип Обязательный Описание
business_connection_id String Да Уникальный идентификатор бизнес-подключения, от имени которого будет отправлено сообщение
chat_id Integer Да Уникальный идентификатор целевого чата
checklist InputChecklist Да JSON-сериализованный объект чек-листа для отправки
disable_notification Boolean Опционально Отправляет сообщение без звука. Пользователи получат уведомление без звукового сигнала.
protect_content Boolean Опционально Защищает содержимое отправленного сообщения от пересылки и сохранения
message_effect_id String Опционально Уникальный идентификатор эффекта сообщения, который будет добавлен к сообщению
reply_parameters ReplyParameters Опционально JSON-сериализованный объект для описания сообщения, на которое нужно ответить
reply_markup InlineKeyboardMarkup Опционально JSON-сериализованный объект для встроенной клавиатуры

Примеры

php

<?php

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

// Параметры для отправки чеклиста
$businessConnectionId = 'YOUR_BUSINESS_CONNECTION_ID';
$chatId = 123456789; // ID чата
$checklist = [
    'title' => 'Еженедельные задачи',
    'items' => [
        [
            'text' => 'Проверить почту',
            'checked' => false
        ],
        [
            'text' => 'Подготовить отчет',
            'checked' => false
        ],
        [
            'text' => 'Совещание с командой',
            'checked' => true
        ]
    ]
];

// Дополнительные параметры (опционально)
$params = [
    'business_connection_id' => $businessConnectionId,
    'chat_id' => $chatId,
    'checklist' => json_encode($checklist),
    'disable_notification' => false,
    'protect_content' => true,
    'message_effect_id' => 'effect_id_example',
    'reply_parameters' => json_encode([
        'message_id' => 123,
        'chat_id' => $chatId
    ]),
    'reply_markup' => json_encode([
        'inline_keyboard' => [
            [
                ['text' => 'Отметить все', 'callback_data' => 'check_all']
            ]
        ]
    ])
];

// Удаляем пустые опциональные параметры
$params = array_filter($params, function($value) {
    return $value !== null;
});

// Формируем URL для запроса
$url = "https://api.telegram.org/bot{$botToken}/sendChecklist";

// Отправляем запрос
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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 (curl_errno($ch)) {
    echo 'Ошибка cURL: ' . curl_error($ch);
} else {
    $responseData = json_decode($response, true);
    if ($responseData['ok']) {
        echo "Чеклист успешно отправлен! ID сообщения: " . $responseData['result']['message_id'];
    } else {
        echo "Ошибка: " . $responseData['description'];
    }
}

curl_close($ch);

?>

python

import requests

def send_checklist(bot_token, business_connection_id, chat_id, checklist, 
                   disable_notification=None, protect_content=None, 
                   message_effect_id=None, reply_parameters=None, 
                   reply_markup=None):
    """
    Send a checklist on behalf of a connected business account.
    
    Args:
        bot_token (str): Telegram Bot API token
        business_connection_id (str): Business connection identifier
        chat_id (int): Target chat ID
        checklist (dict): InputChecklist object
        disable_notification (bool, optional): Send silently
        protect_content (bool, optional): Protect from forwarding
        message_effect_id (str, optional): Message effect identifier
        reply_parameters (dict, optional): ReplyParameters object
        reply_markup (dict, optional): InlineKeyboardMarkup object
    
    Returns:
        dict: Sent Message object or error
    """
    
    url = f"https://api.telegram.org/bot{bot_token}/sendChecklist"
    
    payload = {
        "business_connection_id": business_connection_id,
        "chat_id": chat_id,
        "checklist": checklist
    }
    
    # Optional parameters
    if disable_notification is not None:
        payload["disable_notification"] = disable_notification
    if protect_content is not None:
        payload["protect_content"] = protect_content
    if message_effect_id is not None:
        payload["message_effect_id"] = message_effect_id
    if reply_parameters is not None:
        payload["reply_parameters"] = reply_parameters
    if reply_markup is not None:
        payload["reply_markup"] = reply_markup
    
    response = requests.post(url, json=payload)
    return response.json()

# Example usage
if __name__ == "__main__":
    # Configuration
    BOT_TOKEN = "YOUR_BOT_TOKEN"
    BUSINESS_CONNECTION_ID = "your_business_connection_id"
    CHAT_ID = 123456789
    
    # Create a checklist with tasks
    checklist_data = {
        "title": "Daily Tasks",
        "items": [
            {"text": "Check emails", "checked": True},
            {"text": "Team meeting", "checked": False},
            {"text": "Project review", "checked": False},
            {"text": "Documentation", "checked": True}
        ]
    }
    
    # Optional inline keyboard
    keyboard = {
        "inline_keyboard": [[
            {"text": "Mark All Done", "callback_data": "mark_all"},
            {"text": "Refresh", "callback_data": "refresh"}
        ]]
    }
    
    # Send the checklist
    result = send_checklist(
        bot_token=BOT_TOKEN,
        business_connection_id=BUSINESS_CONNECTION_ID,
        chat_id=CHAT_ID,
        checklist=checklist_data,
        disable_notification=True,
        protect_content=False,
        reply_markup=keyboard
    )
    
    print(result)

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

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

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

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