API¶
API¶
API
¶
API(
token,
token_owner=UNKNOWN,
version=__vk_api_version__,
requests_url="https://api.vk.ru/method/",
requests_session=None,
json_parser=None,
cache_table=None,
proxies=None,
max_retries=5,
retry_initial_delay=1.0,
retry_max_delay=30.0,
)
Bases: SessionContainerMixin
Source code in vkflow\api.py
method
async
¶
Выполняет необходимый API запрос с нужным методом и параметрами. Вызов метода поддерживает конвертацию из snake_case в camelCase.
Перед вызовом этого метода может быть вызван .use_cache() для
включения возможности кэш-логики запроса
Каждый передаваемый параметр проходит специальный этап конвертации перед передачей в запрос по следующему принципу:
- Все элементы списков, кортежей и множеств проходят конвертацию рекурсивно и
объединяются в строку через
, - Все словари автоматически дампятся в JSON-строку установленным JSON-парсером
- Все True/False значения становятся 1 и 0 соответственно (требуется для aiohttp)
- Если переданный объект имплементирует класс
APISerializableMixin, вызывается соответствующий метод класса для конвертации в желаемое значение
К параметрам автоматически добавляются access_token (ключ доступа) и v (версия API),
переданные при инициализации, но каждый из этих полей может быть задан вручную для
конкретного запроса. Например, необходимо вызвать метод с другой версией API
или передать другой токен.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
method_name
|
str
|
Имя вызываемого метода API |
required |
request_params
|
Any
|
Параметры, принимаемые методом, которые описаны в документации API. |
{}
|
Returns:
| Type | Description |
|---|---|
Any
|
Пришедший от API ответ. |
Raises:
| Type | Description |
|---|---|
VKAPIError
|
В случае ошибки, пришедшей от некорректного вызова запроса. |
Source code in vkflow\api.py
execute
async
¶
Исполняет API метод execute с переданным VKScript-кодом.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
code
|
str | CallMethod
|
VKScript код |
()
|
Returns:
| Type | Description |
|---|---|
Any
|
Пришедший ответ от API |
Raises:
| Type | Description |
|---|---|
VKAPIError
|
В случае ошибки, пришедшей от некорректного вызова запроса. |
Source code in vkflow\api.py
use_cache
¶
Включает кэширование для следующего запроса. Кэширование выключается автоматически, т.е. кэширование будет использовано только для первого следующего выполняемого API запроса.
Включение кэширования подразумевает, что следующий запрос будет занесен в специальную кэш-таблицу. Ключ кэша привязывается к имени вызываемого метода и переданным параметрам, а значение -- к ответу API. Если запрос с таким именем метода и такими параметрами уже был выполнен когда-то, то вместо отправки запроса будет возвращено значение из кэш-таблицы
Если необходимо передать свою собственную имплементацию
кэш-таблицы, укажите соответствующий инстанс при инициализации объекта
в поле cache_table. По умолчанию используется TTL-алгоритм.
Returns:
| Type | Description |
|---|---|
API
|
Тот же самый инстанс API, готовый к кэшированному запросу |
Source code in vkflow\api.py
define_token_owner
async
¶
Позволяет определить владельца токена: группа или пользователь.
Метод использует кэширование, поэтому в своем коде можно смело каждый раз вызывать этот метод, не боясь лишних исполняемых запросов
Владелец токена будет определен автоматически после первого выполненного
запроса для определения задержки, если token_owner поле
не было установленно вручную при инициализации объекта
Returns:
| Type | Description |
|---|---|
TokenOwner
|
Возвращает словарь, первый элемент которого TokenOwner значение, |
Page
|
указывающее, группа это или пользователь, а в второй -- сама схема объекта |
tuple[TokenOwner, Page]
|
сущности пользователя/группы, обернутая соответствующим враппером |
:rtype:
Source code in vkflow\api.py
upload_photos_to_message
async
¶
Загружает фотографию в сообщения
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
photos
|
PhotoEntityTyping
|
Фотографии в виде ссылки/пути до файла/сырых байтов/ IO-хранилища/Path-like объекта |
()
|
peer_id
|
int
|
ID диалога или беседы, куда загружаются фотографии. Если не передавать, то фотографии загрузятся в скрытый альбом. Рекомендуется исключительно для тестирования, т.к. такой альбом имеет лимиты |
0
|
Returns:
Список врапперов загруженных фотографий, который можно напрямую
передать в поле attachment при отправке сообщения
Source code in vkflow\api.py
upload_doc_to_message
async
¶
Загружает документ для отправки в сообщение
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
str | bytes
|
Содержимое документа. Документ может быть как текстовым, так и содержать сырые байты |
required |
filename
|
str
|
Имя файла |
required |
tags
|
str | None
|
Теги для файла, используемые при поиске |
None
|
return_tags
|
bool | None
|
Возвращать переданные теги при запросе |
None
|
type
|
Literal['doc', 'audio_message', 'graffiti']
|
Тип документа: файл/голосовое сообщение/граффити |
'doc'
|
peer_id
|
int
|
ID диалога или беседы, куда загружается документ |
0
|
Returns:
| Type | Description |
|---|---|
Document
|
Враппер загруженного документа. Этот объект можно напрямую |
Document
|
передать в поле |
Source code in vkflow\api.py
upload_video_to_message
async
¶
upload_video_to_message(
file,
*,
name=None,
description=None,
is_private=True,
wallpost=False,
link=None,
group_id=None,
album_id=None,
privacy_view=None,
privacy_comment=None,
no_comments=False,
repeat=False,
compression=False
)
Загружает видео для отправки в сообщение
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
file
|
str | bytes | BinaryIO | PathLike
|
Видео файл в виде ссылки/пути до файла/сырых байтов/IO-хранилища |
required |
name
|
str | None
|
Название видео |
None
|
description
|
str | None
|
Описание видео |
None
|
is_private
|
bool
|
Является ли видео приватным |
True
|
wallpost
|
bool
|
Опубликовать видео на стене после сохранения |
False
|
link
|
str | None
|
URL для встраивания видео с внешнего сайта |
None
|
group_id
|
int | None
|
ID сообщества (для сообществ) |
None
|
album_id
|
int | None
|
ID альбома, в который нужно загрузить видео |
None
|
privacy_view
|
list[str] | None
|
Настройки приватности для просмотра |
None
|
privacy_comment
|
list[str] | None
|
Настройки приватности для комментирования |
None
|
no_comments
|
bool
|
Отключить комментарии |
False
|
repeat
|
bool
|
Зациклить воспроизведение видео |
False
|
compression
|
bool
|
Сжать видео для мобильных устройств |
False
|
Returns:
| Type | Description |
|---|---|
Video
|
Враппер загруженного видео. Этот объект можно напрямую |
Video
|
передать в поле |
Source code in vkflow\api.py
589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 | |
TokenOwner¶
TokenOwner
¶
Bases: Enum
Тип владельца токена: пользователь/группа/не определено