Описание
Используйте этот метод для потоковой передачи частичного сообщения пользователю в процессе его генерации; поддерживается только для ботов с включённым режимом топиков форума. Возвращает True при успешном выполнении.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| chat_id | Integer | Да | Уникальный идентификатор целевого приватного чата |
| message_thread_id | Integer | Необязательный | Уникальный идентификатор целевого треда сообщений |
| draft_id | Integer | Да | Уникальный идентификатор черновика сообщения; должен быть ненулевым. Изменения черновиков с одним и тем же идентификатором анимируются |
| text | String | Да | Текст отправляемого сообщения, 1-4096 символов после обработки entities |
| parse_mode | String | Необязательный | Режим обработки entities в тексте сообщения. Подробности смотрите в параметрах форматирования. |
| entities | Array of MessageEntity | Необязательный | JSON-сериализованный список специальных entities, которые встречаются в тексте сообщения; может быть указан вместо parse_mode |
Примеры
php
<?php
$botToken = 'ВАШ_ТОКЕН_БОТА';
$apiUrl = "https://api.telegram.org/bot{$botToken}/sendMessageDraft";
// Данные для отправки
$data = [
'chat_id' => 123456789, // ID приватного чата
'message_thread_id' => 112233, // ID темы (опционально)
'draft_id' => 1, // ID черновика (должен быть ненулевым)
'text' => 'Это частичное сообщение, которое показывается во время генерации...',
'parse_mode' => 'HTML' // или 'MarkdownV2', 'Markdown'
];
// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// Обработка ответа
$result = json_decode($response, true);
if ($result['ok'] ?? false) {
echo "Черновик успешно отправлен!\n";
} else {
echo "Ошибка: " . ($result['description'] ?? 'Неизвестная ошибка') . "\n";
}
?>
python
import requests
import json
bot_token = 'ВАШ_ТОКЕН_БОТА'
api_url = f'https://api.telegram.org/bot{bot_token}/sendMessageDraft'
# Данные для отправки
data = {
'chat_id': 123456789, # ID приватного чата
'message_thread_id': 112233, # ID темы (опционально)
'draft_id': 1, # ID черновика (должен быть ненулевым)
'text': 'Это частичное сообщение, которое показывается во время генерации...',
'parse_mode': 'HTML' # или 'MarkdownV2', 'Markdown'
}
# Отправка запроса
response = requests.post(api_url, json=data)
# Обработка ответа
if response.status_code == 200:
result = response.json()
if result.get('ok'):
print("Черновик успешно отправлен!")
else:
print(f"Ошибка: {result.get('description', 'Неизвестная ошибка')}")
else:
print(f"Ошибка HTTP: {response.status_code}")
История изменений
- API 9.3. Добавлен метод sendMessageDraft
Дополнительно
- MessageEntity - Объект MessageEntity представляет специальную форматированную сущность в тексте сообщения, такую как упоминания, хэштеги, ссылки или стилизованный текст.