Cluster · разработчикам

Bot API и Telethon

Справочник SDK · Типы и ошибки

Это каталог имён и параметров, которые понимает установленная версия SDK. Наличие имени в схеме не означает доступ: ядро отдельно запрещает служебные операции и проверяет выданные права. Схемы закреплены вместе с кодом; новая версия Telegram может содержать методы, которых здесь ещё нет.

Все аргументы передаются по имени. У Bot API необязательное поле лучше пропустить: отсутствие и явный None могут иметь разный смысл. TL-параметры с Optional принимают None; значения по умолчанию показаны в списке. Объекты результата сериализуются в JSON, поэтому у них нет живых методов Telethon.

Bot API

await app.bot.api.sendMessage(chat_id=chat, text="Hello") вызывает личного бота. app.bot.types.InlineKeyboardMarkup(...) создаёт обычный словарь, без await. app.bot.types.file(id) помечает вложение из файлов Cluster. Общий вызов требует bot.full и отсутствия непроверяемых ограничений; для выделенных методов возможны bot.read/bot.send при числовом chat_id. business_connection_id, allow_paid_broadcast и suggested_post_parameters дополнительно требуют bot.full.

Результаты Bot API приведены в закреплённых описаниях методов. Выделенные методы могут нормализовать ответ в TelegramMessage, общий invoke возвращает исходный JSON Bot API. Ошибки: ValueError при неизвестном или отсутствующем параметре в Namespace; AccessDenied/InvalidInput/InvalidState при проверке ядром; FloodWait с retry_after, SDKError для прочих отказов Telegram. HTTP и Telegram могут отказать даже при корректной форме аргументов.

Telethon / TL

await app.client.api.messages.SendMessage(peer=..., message="Hello", random_id=...) отправляет TL-запрос. app.client.types.InputPeerSelf() создаёт словарь с ключом _. Это не высокоуровневый TelegramClient; его выделенные методы описаны в app.client. Имена TypeInputPeer и аналогичные в сигнатурах обозначают семейства TL-конструкторов установленной Telethon 1.45.0.

Нужен telegram.full. Общий запрос запрещён, если ядро не может надёжно применить ограничения чатов и пользователей. auth и методы управления авторизациями, паролями и токеном бота заблокированы. Статус доступности каждого запроса указан в его карточке. bytes преобразуются в {bytes: base64}, datetime с часовым поясом в {date: UNIX}; ответ использует те же JSON-оболочки. Ошибки схемы вызывают ValueError/AttributeError, проверки ядра AccessDenied/InvalidInput, Telegram FloodWait/SDKError. Полный набор ошибок конкретного RPC зависит от Telegram и состояния аккаунта.

Разделы TL