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

app.bot

Методы личного бота юзербота. Для общих вызовов используй bot.api или invoke(); токен остаётся в ядре.

Все методы SDK · Типы и ошибки

Получение объекта

me = await app.bot.get_me()

__init__

Создаёт Bot. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

def __init__(app: App) -> None: ...

Аргументы

Результат

None. Создаёт Bot. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

# Обычный способ получения объекта:
me = await app.bot.get_me()

native

Вызывает Bot API из словаря параметров. Извлекает chat_id через pop(), поэтому переданный словарь изменяется.

async def native(method: str, data: JSON) -> JSON: ...

Аргументы

Результат

JSON. Вызывает Bot API из словаря параметров. Извлекает chat_id через pop(), поэтому переданный словарь изменяется.

Права

Нужны bot.full.

Ошибки

Пример

me = await app.bot.native("getMe", {})

request

Вызывает Bot API по имени. Для выделенных методов действуют частные права, для остальных нужен bot.full.

async def request(method: str, chat: int | None = None, **data: JSON) -> JSON: ...

Аргументы

Результат

JSON. Вызывает Bot API по имени. Для выделенных методов действуют частные права, для остальных нужен bot.full.

Права

Зависят от method: частное право выделенного метода либо bot.full для общего API.

Ошибки

Пример

me = await app.bot.request("getMe")

get_me

Получает публичные сведения о личном боте.

async def get_me() -> BotUser: ...

Аргументы

Нет.

Результат

BotUser. Получает публичные сведения о личном боте.

Права

Нужны bot.read.

Ошибки

Пример

result = await app.bot.get_me()

invoke

Вызывает доступный модулю метод Bot API с полным доступом. Управление получением обновлений и служебными настройками бота недоступно.

async def invoke(method: str, **data: JSON) -> JSON: ...

Аргументы

Результат

JSON. Вызывает доступный модулю метод Bot API с полным доступом. Управление получением обновлений и служебными настройками бота недоступно.

Права

Нужны bot.full.

Ошибки

Пример

me = await app.bot.invoke("getMe")

send_message

Отправляет текст от личного бота в выбранный чат.

async def send_message(chat: int | None, text: str, **data: JSON) -> TelegramMessage: ...

Аргументы

Результат

TelegramMessage. Отправляет текст от личного бота в выбранный чат.

Права

Нужны bot.send.

Ошибки

Пример

result = await app.bot.send_message(ctx.chat_id, "Ready", parse_mode="HTML")

edit_message

Меняет текст сообщения личного бота.

async def edit_message(chat: int | None, message_id: int, text: str, **data: JSON) -> TelegramMessage | bool: ...

Аргументы

Результат

TelegramMessage | bool. Меняет текст сообщения личного бота.

Права

Нужны bot.send.

Ошибки

Пример

result = await app.bot.edit_message(ctx.chat_id, ctx.id, "Ready", parse_mode="HTML")

edit_caption

Меняет подпись вложения в сообщении личного бота.

async def edit_caption(chat: int | None, message_id: int, caption: str, **data: JSON) -> TelegramMessage | bool: ...

Аргументы

Результат

TelegramMessage | bool. Меняет подпись вложения в сообщении личного бота.

Права

Нужны bot.send.

Ошибки

Пример

result = await app.bot.edit_caption(ctx.chat_id, ctx.id, "Ready", parse_mode="HTML")

delete_message

Удаляет сообщение личного бота, если Telegram разрешает удаление.

async def delete_message(chat: int | None, message_id: int) -> bool: ...

Аргументы

Результат

bool. Удаляет сообщение личного бота, если Telegram разрешает удаление.

Права

Нужны bot.send.

Ошибки

Пример

result = await app.bot.delete_message(ctx.chat_id, ctx.id)

send_file

Отправляет готовый файл Cluster через выбранный метод личного бота.

async def send_file(chat: int | None, file: str, **data: JSON) -> TelegramMessage: ...

Аргументы

Результат

TelegramMessage. Отправляет готовый файл Cluster через выбранный метод личного бота.

Права

Нужны bot.send + files.read. Для чужих файлов своего юзербота дополнительно files.full либо отдельное разрешение конфигурационного файла на чтение.

Ошибки

Пример

result = await app.bot.send_file(ctx.chat_id, "file-id", parse_mode="HTML")