Метод editStory

Метод редактирует ранее опубликованную историю от имени бизнес-аккаунта с возможностью изменения содержимого, подписи и интерактивных областей.

Описание

Редактирует историю, ранее опубликованную ботом от имени управляемого бизнес-аккаунта. Требует права бизнес-бота 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.
Комментарии