Описание
Репостит историю от имени бизнес-аккаунта другого бизнес-аккаунта. Оба бизнес-аккаунта должны управляться одним и тем же ботом, и история в исходном аккаунте должна быть опубликована (или отрепощена) этим ботом. Требует права бота can_manage_stories для обоих бизнес-аккаунтов. Возвращает Story в случае успеха.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| business_connection_id | String | Да | Уникальный идентификатор бизнес-подключения |
| from_chat_id | Integer | Да | Уникальный идентификатор чата, который опубликовал историю для репоста |
| from_story_id | Integer | Да | Уникальный идентификатор истории, которую нужно репостнуть |
| active_period | Integer | Да | Период в секундах, после которого история перемещается в архив; должен быть одним из 6 * 3600, 12 * 3600, 86400, или 2 * 86400 |
| post_to_chat_page | Boolean | Необязательный | Передайте True, чтобы история оставалась доступной после истечения срока |
| protect_content | Boolean | Необязательный | Передайте True, если содержимое истории должно быть защищено от пересылки и создания скриншотов |
Примеры
php
<?php
$botToken = 'ВАШ_ТОКЕН_БОТА';
$apiUrl = "https://api.telegram.org/bot{$botToken}/repostStory";
// Данные для отправки
$data = [
'business_connection_id' => 'business_connection_123', // ID бизнес-подключения
'from_chat_id' => -1001234567890, // ID чата, где опубликована оригинальная история
'from_story_id' => 12345, // ID оригинальной истории
'active_period' => 86400, // 24 часа (должен быть одним из: 21600, 43200, 86400, 172800)
'post_to_chat_page' => true, // Сохранить историю после истечения (опционально)
'protect_content' => true // Защитить от пересылки и скриншотов (опционально)
];
// Отправка запроса
$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) {
$story = $result['result'];
echo "История успешно переопубликована!\n";
echo "ID переопубликованной истории: " . ($story['id'] ?? 'N/A') . "\n";
echo "Чат: " . ($story['chat']['title'] ?? 'N/A') . "\n";
echo "Дата публикации: " . date('Y-m-d H:i:s', $story['date'] ?? time()) . "\n";
echo "Период активности: " . ($story['active_period'] ?? 'N/A') . " секунд\n";
// Проверка содержимого
if (isset($story['video'])) {
echo "Тип: Видео\n";
echo "Длительность: " . ($story['video']['duration'] ?? 0) . " сек\n";
} elseif (isset($story['photo'])) {
echo "Тип: Фото\n";
}
// Дополнительные параметры
if (isset($story['post_to_chat_page']) && $story['post_to_chat_page']) {
echo "Будет сохранена на странице чата\n";
}
if (isset($story['protect_content']) && $story['protect_content']) {
echo "Контент защищен от пересылки и скриншотов\n";
}
} else {
echo "Ошибка: " . ($result['description'] ?? 'Неизвестная ошибка') . "\n";
}
?>
python
import requests
import json
from datetime import datetime
bot_token = 'ВАШ_ТОКЕН_БОТА'
api_url = f'https://api.telegram.org/bot{bot_token}/repostStory'
# Данные для отправки
data = {
'business_connection_id': 'business_connection_123', # ID бизнес-подключения
'from_chat_id': -1001234567890, # ID чата, где опубликована оригинальная история
'from_story_id': 12345, # ID оригинальной истории
'active_period': 86400, # 24 часа (должен быть одним из: 21600, 43200, 86400, 172800)
'post_to_chat_page': True, # Сохранить историю после истечения (опционально)
'protect_content': True # Защитить от пересылки и скриншотов (опционально)
}
# Отправка запроса
response = requests.post(api_url, json=data)
# Обработка ответа
if response.status_code == 200:
result = response.json()
if result.get('ok'):
story = result['result']
print("История успешно переопубликована!")
print(f"ID переопубликованной истории: {story.get('id', 'N/A')}")
print(f"Чат: {story.get('chat', {}).get('title', 'N/A')}")
print(f"Дата публикации: {datetime.fromtimestamp(story.get('date', 0)).strftime('%Y-%m-%d %H:%M:%S')}")
print(f"Период активности: {story.get('active_period', 'N/A')} секунд")
# Проверка содержимого
if 'video' in story:
print(f"Тип: Видео")
print(f"Длительность: {story['video'].get('duration', 0)} сек")
elif 'photo' in story:
print(f"Тип: Фото")
print(f"Количество фото: {len(story['photo'])}")
# Дополнительные параметры
if story.get('post_to_chat_page'):
print("Будет сохранена на странице чата")
if story.get('protect_content'):
print("Контент защищен от пересылки и скриншотов")
# Информация о просмотрах
if 'views' in story:
print(f"Просмотров: {story['views']}")
if 'forward_count' in story:
print(f"Переслано: {story['forward_count']}")
else:
print(f"Ошибка: {result.get('description', 'Неизвестная ошибка')}")
else:
print(f"Ошибка HTTP: {response.status_code}")
История изменений
- API 9.3. Добавлен метод repostStory
Дополнительно
- Story - Объект, представляющий историю, опубликованную в чате Telegram.