Описание
Редактирует историю, ранее опубликованную ботом от имени управляемого бизнес-аккаунта. Требует права бизнес-бота can_manage_stories. При успехе возвращает Story.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| business_connection_id | String | Да | Уникальный идентификатор бизнес-подключения |
| story_id | Integer | Да | Уникальный идентификатор истории для редактирования |
| content | InputStoryContent | Да | Содержимое истории |
| caption | String | Опционально | Подпись к истории, 0-2048 символов после обработки сущностей |
| parse_mode | String | Опционально | Режим обработки сущностей в подписи истории. Подробнее см. форматирование. |
| caption_entities | Array of MessageEntity | Опционально | Список специальных сущностей в подписи в формате JSON, может быть указан вместо parse_mode |
| areas | Array of StoryArea | Опционально | Список кликабельных областей для отображения в истории в формате JSON |
Примеры
php
<?php
// Токен бота
$botToken = 'YOUR_BOT_TOKEN';
// Параметры запроса
$params = [
'business_connection_id' => 'YOUR_BUSINESS_CONNECTION_ID',
'story_id' => 123456789,
'content' => [
'type' => 'photo',
'media' => 'https://example.com/new_story_image.jpg'
],
'caption' => 'Обновленная история с новым изображением!',
'parse_mode' => 'HTML',
'caption_entities' => [
[
'type' => 'bold',
'offset' => 0,
'length' => 10
]
],
'areas' => [
[
'position' => [
'x' => 0.5,
'y' => 0.5,
'width' => 0.3,
'height' => 0.2,
'rotation' => 0
],
'type' => 'link',
'url' => 'https://example.com'
]
]
];
// URL API
$apiUrl = "https://api.telegram.org/bot{$botToken}/editStory";
// Отправка запроса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
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']) {
$editedStory = $result['result'];
echo "История успешно отредактирована! ID: " . $editedStory['id'];
} else {
echo "Ошибка: " . $result['description'];
}
?>
python
import asyncio
from typing import Optional, List
from telegram import Bot, InputFile, InputStoryContentPhoto, InputStoryContentVideo, StoryArea, MessageEntity
from telegram.constants import ParseMode
async def edit_story_example():
bot = Bot("YOUR_BOT_TOKEN")
# Пример редактирования фото-стори
photo_content = InputStoryContentPhoto(
photo=InputFile("path/to/photo.jpg")
)
# Пример редактирования видео-стори
video_content = InputStoryContentVideo(
video=InputFile("path/to/video.mp4")
)
# Создаем entities для форматирования текста
caption_entities = [
MessageEntity(type=MessageEntity.BOLD, offset=0, length=10),
MessageEntity(type=MessageEntity.ITALIC, offset=11, length=8)
]
# Создаем кликабельные области
areas = [
StoryArea(
position={"x": 0.5, "y": 0.5, "width": 0.3, "height": 0.3, "rotation": 0},
url="https://example.com"
)
]
try:
# Редактируем существующую сторис
edited_story = await bot.edit_story(
business_connection_id="your_business_connection_id",
story_id=123456789, # ID существующей сторис
content=photo_content, # или video_content
caption="Обновленный текст сторис с **жирным** и _курсивом_",
parse_mode=ParseMode.MARKDOWN_V2,
caption_entities=caption_entities,
areas=areas
)
print(f"Сторис успешно отредактирована! ID: {edited_story.id}")
except Exception as e:
print(f"Ошибка при редактировании сторис: {e}")
# Запуск асинхронной функции
if __name__ == "__main__":
asyncio.run(edit_story_example())
История изменений
- API 9.0. Добавлен метод editStory
Дополнительно
- Story - Объект, представляющий историю, опубликованную в чате Telegram.
- InputStoryContent - Объект, описывающий контент (фото или видео) для публикации в виде истории.
- MessageEntity - Объект MessageEntity представляет специальную форматированную сущность в тексте сообщения, такую как упоминания, хэштеги, ссылки или стилизованный текст.
- StoryArea - Объект описывает интерактивную область на медиафайле в историях Telegram.