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