Описание
Используйте этот метод для отправки чек-листа от имени подключенного бизнес-аккаунта. При успешном выполнении возвращается отправленное 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 - Объект для создания встроенной клавиатуры, которая отображается непосредственно в сообщении.