← Telegram SDK

Telegram: Premium, боты и настройки сайта

Проверено по официальной документации Telegram 11 октября 2026 года.

Что меняется от подписки

Возможность Личный аккаунт Бот сайта
Длина обычного сообщения Лимит Telegram-клиента sendMessage: 4096 символов после разбора разметки
Подпись к медиа У Premium увеличенные лимиты; значения выдаёт конфигурация Telegram 1024 символа после разбора разметки независимо от Premium владельца
Размер файлов Premium увеличивает лимит пользовательской загрузки Отдельные ограничения Bot API; для multipart-фото 10 МБ, прочих файлов 50 МБ. Локальный Bot API — отдельный режим инфраструктуры
Пользовательские emoji Возможность Premium Дополнительное имя на Fragment либо Premium владельца для прямых сообщений бота в личные чаты, группы и супергруппы. В канале одного Premium владельца недостаточно
Цвет кнопок Не определяет доступность primary, success, danger не требуют Premium
Business Часть возможностей требует подписки Подключённые бизнес-боты доступны и без Premium; нужны действующее подключение и конкретные права
Оформление канала, истории Зависит также от бустов и уровня канала Подписка владельца не заменяет уровень канала и права администратора
Быстрая платная рассылка Не включается подпиской Отдельное allow_paid_broadcast, расходы Stars и требования Telegram
Расшифровка, перевод, папки, закрепы, GIF, избранные стикеры, личные истории Возможности и лимиты клиента Premium Не превращаются автоматически в возможности SDK-бота

Значения личных лимитов нельзя получать из getMe: метод возвращает самого бота, а не его владельца. Для клиента Telegram используются help.getAppConfig и актуальные Premium-настройки. Статус, введённый владельцем в панели, обозначается как заявленный, а не подтверждённый API.

Настройка в админке сайта

Откройте Telegram → Каналы Telegram → нужный канал. Укажите владельца, Premium, тип получателя, желаемую длину текста и подписи. Пользовательские emoji включаются отдельно. Покупка дополнительного имени на Fragment указывается только при её наличии. Платная рассылка по умолчанию запрещена.

400 символов — редакционный выбор нашего сайта, а не ограничение бесплатного Telegram. Миграция сохраняет этот выбор для существующих каналов без Premium; новые каналы используют максимумы Bot API. Включение Premium больше не меняет длину публикаций автоматически.

Публичный и административный боты имеют самостоятельные настройки. Подписка покупателя на сайте, Premium владельца Telegram и баланс Stars — разные сущности. Для YETI3 владелец указал Premium; для MillerRings — отсутствие Premium. Остальные аккаунты необходимо проверять отдельно.

Настройка в лицензировании

Страница /telegram-settings содержит профиль аккаунта и отдельные профили публичного/административного бота каждого проекта. Чужие проекты недоступны; оператор может управлять зарегистрированным проектом по его ID через API. Пароли и токены ботов в профиле не хранятся. История изменений записывается в аудит. При параллельном изменении сервер вернёт 409 — обновите страницу перед сохранением.

API с Bearer-сессией владельца либо SSO-cookie:

GET /api/network/v1/telegram-settings/account/{account_id}/profile
GET /api/network/v1/telegram-settings/project/{project_id}/public
GET /api/network/v1/telegram-settings/project/{project_id}/admin
PUT тот_же_адрес
{
  "version": 0,
  "settings": {
    "owner_label": "Мастерская",
    "owner_status": "free",
    "destination_kind": "channel",
    "fragment_username": false,
    "custom_emoji_enabled": false,
    "allow_paid_broadcast": false,
    "text_budget": 400,
    "caption_budget": 400,
    "business_connection_enabled": false,
    "channel_boost_level": 0
  }
}

version берётся из GET. Настройки аккаунта справочные: они не меняют все боты автоматически — владелец бота может отличаться от владельца сайта. Business и бусты также справочные, до проверки фактических прав провайдером.

Для Django-модуля загрузите профиль явно. ID проекта берётся из лицензирования; YETI3_LICENSE_SETTINGS_TOKEN — защищённая Bearer-сессия владельца, не токен BotFather. Права ограничены аккаунтом владельца, хранить в менеджере секретов, не в репозитории.

python manage.py sync_telegram_settings --project PROJECT_ID
python manage.py sync_telegram_settings --project PROJECT_ID --apply

Первая команда только проверяет. Вторая обновляет каналы соответствующего назначения атомарно. Отсутствующий центральный профиль не сбрасывает локальные настройки. Ошибка доступа или неуказанный статус владельца отменяет применение; сообщений в Telegram команда не отправляет. Это явная синхронизация, а не фоновое автоматическое применение.

Подключение SDK

from yeti3_telegram.account_policy import AccountPolicy
from yeti3_telegram import TelegramClient

policy = AccountPolicy(
    owner_status="premium",
    destination_kind="private",
    custom_emoji_enabled=True,
    allow_paid_broadcast=False,
)
client = TelegramClient(token_from_secret_store, account_policy=policy)

Без разрешения на пользовательские emoji SDK сохраняет обычный emoji и текст, удаляет только специальную разметку и значок кнопки. Смещения остальных entities, действия кнопок и получатель сохраняются. В MarkdownV2 неподдерживаемая специальная emoji-разметка отклоняется до отправки; используйте HTML или entities. Неизвестный тип чата не считается каналом или супергруппой по одному префиксу ID.

Источники и обновления

При обновлении Bot API проверяются эти источники и регрессионные тесты SDK. Переключатель в админке никогда не выдаёт права, которых нет в Telegram.