Документация vk_api

vk_api – Python модуль для создания скриптов для социальной сети Вконтакте (vk.com API wrapper)

Установка через PIP:

# pip3 install vk_api

Примеры по использованию библиотеки доступны на GitHub.

import vk_api

vk_session = vk_api.VkApi('+71234567890', 'mypassword')
vk_session.auth()

vk = vk_session.get_api()

print(vk.wall.post(message='Hello world!'))

VkApi (основной класс)

class vk_api.vk_api.VkApi(login=None, password=None, token=None, auth_handler=None, captcha_handler=None, config=<class 'jconfig.jconfig.Config'>, config_filename='vk_config.v2.json', api_version='5.92', app_id=6222115, scope=140492255, client_secret=None, session=None)[source]
Parameters:
  • login (str) – Логин ВКонтакте (лучше использовать номер телефона для автоматического обхода проверки безопасности)
  • password (str) – Пароль ВКонтакте (если пароль не передан, то будет попытка использовать сохраненные данные)
  • token (str) – access_token
  • auth_handler – Функция для обработки двухфакторной аутентификации, должна возвращать строку с кодом и булево значение, означающее, стоит ли запомнить это устройство, для прохождения аутентификации.
  • captcha_handler – Функция для обработки капчи, см. captcha_handler()
  • config (jconfig.base.BaseConfig) – Класс для сохранения настроек
  • config_filename – Расположение config файла для jconfig.config.Config
  • api_version (str) – Версия API
  • app_id (int) – app_id Standalone-приложения
  • scope (int or str) – Запрашиваемые права, можно передать строкой или числом. См. VkUserPermissions
  • client_secret – Защищенный ключ приложения для Client Credentials Flow авторизации приложения (https://vk.com/dev/client_cred_flow). Внимание: Этот способ авторизации устарел, рекомендуется использовать сервисный ключ из настроек приложения.

login и password необходимы для автоматического получения токена при помощи Implicit Flow авторизации пользователя и возможности работы с веб-версией сайта (включая vk_api.audio.VkAudio)

Parameters:session (requests.Session) – Кастомная сессия со своими параметрами(из библиотеки requests)
auth(reauth=False, token_only=False)[source]

Аутентификация

Parameters:
  • reauth – Позволяет переавторизоваться, игнорируя сохраненные куки и токен
  • token_only

    Включает оптимальную стратегию аутентификации, если необходим только access_token

    Например если сохраненные куки не валидны, но токен валиден, то аутентификация пройдет успешно

    При token_only=False, сначала проверяется валидность куки. Если кука не будет валидна, то будет произведена попытка аутетификации с паролем. Тогда если пароль не верен или пароль не передан, то аутентификация закончится с ошибкой.

    Если вы не делаете запросы к веб версии сайта используя куки, то лучше использовать token_only=True

check_sid()[source]

Проверка Cookies remixsid на валидность

server_auth()[source]

Серверная авторизация

code_auth(code, redirect_url)[source]

Получение access_token из code

captcha_handler(captcha)[source]

Обработчик капчи (http://vk.com/dev/captcha_error)

Parameters:captcha – объект исключения Captcha
need_validation_handler(error)[source]
Обработчик проверки безопасности при запросе API
(http://vk.com/dev/need_validation)
Parameters:error – исключение
http_handler(error)[source]

Обработчик ошибок соединения

Parameters:error – исключение
too_many_rps_handler(error)[source]
Обработчик ошибки “Слишком много запросов в секунду”.
Ждет полсекунды и пробует отправить запрос заново
Parameters:error – исключение
auth_handler()[source]

Обработчик двухфакторной аутентификации

get_api()[source]

Возвращает VkApiMethod(self)

Позволяет обращаться к методам API как к обычным классам. Например vk.wall.get(…)

method(method, values=None, captcha_sid=None, captcha_key=None, raw=False)[source]

Вызов метода API

Parameters:
  • method (str) – название метода
  • values (dict) – параметры
  • captcha_sid – id капчи
  • captcha_key (str) – ответ капчи
  • raw (bool) – при False возвращает response[‘response’] при True возвращает response (может понадобиться для метода execute для получения execute_errors)
class vk_api.vk_api.VkUserPermissions[source]

Bases: enum.IntEnum

Перечисление прав пользователя. Список прав получается побитовым сложением (x | y) каждого права. Подробнее в документации VK API: https://vk.com/dev/permissions

NOTIFY = 1

Пользователь разрешил отправлять ему уведомления (для flash/iframe-приложений). Не работает с этой библиотекой.

FRIEND = 2

Доступ к друзьям.

PHOTOS = 4

Доступ к фотографиям.

AUDIO = 8

Доступ к аудиозаписям. При отсутствии доступа к закрытому API аудиозаписей это право позволяет только загрузку аудио.

VIDEO = 16

Доступ к видеозаписям.

STORIES = 64

Доступ к историям.

PAGES = 128

Доступ к wiki-страницам.

Добавление ссылки на приложение в меню слева.

STATUS = 1024

Доступ к статусу пользователя.

NOTES = 2048

Доступ к заметкам пользователя.

MESSAGES = 4096

Доступ к расширенным методам работы с сообщениями.

WALL = 8192

Доступ к обычным и расширенным методам работы со стеной.

ADS = 32768

Доступ к расширенным методам работы с рекламным API.

OFFLINE = 65536

Доступ к API в любое время. Рекомендуется при работе с этой библиотекой.

DOCS = 131072

Доступ к документам.

GROUPS = 262144

Доступ к группам пользователя.

NOTIFICATIONS = 524288

Доступ к оповещениям об ответах пользователю.

STATS = 1048576

Доступ к статистике групп и приложений пользователя, администратором которых он является.

EMAIL = 4194304

Доступ к email пользователя.

MARKET = 134217728

Доступ к товарам.

VkUpload

Модуль для загрузки медиафайлов в VK

class vk_api.upload.VkUpload(vk)[source]

Загрузка файлов через API (https://vk.com/dev/upload_files)

Parameters:vk – объект VkApi или VkApiMethod
photo(photos, album_id, latitude=None, longitude=None, caption=None, description=None, group_id=None)[source]

Загрузка изображений в альбом пользователя

Parameters:
  • photos (str or list) – путь к изображению(ям) или file-like объект(ы)
  • album_id – идентификатор альбома
  • latitude – географическая широта, заданная в градусах (от -90 до 90)
  • longitude – географическая долгота, заданная в градусах (от -180 до 180)
  • caption – текст описания изображения
  • description – текст описания альбома
  • group_id – идентификатор сообщества (если загрузка идет в группу)
photo_messages(photos, peer_id=None)[source]

Загрузка изображений в сообщения

Parameters:
  • photos (str or list) – путь к изображению(ям) или file-like объект(ы)
  • peer_id (int) – peer_id беседы
photo_group_widget(photo, image_type)[source]

Загрузка изображений в коллекцию сообщества для виджетов приложений сообществ

Parameters:
  • photo (str) – путь к изображению или file-like объект
  • image_type – тип изображиения в зависимости от выбранного виджета

(https://vk.com/dev/appWidgets.getGroupImageUploadServer) :type image_type: str

photo_profile(photo, owner_id=None, crop_x=None, crop_y=None, crop_width=None)[source]

Загрузка изображения профиля

Parameters:
  • photo – путь к изображению или file-like объект
  • owner_id – идентификатор сообщества или текущего пользователя. По умолчанию загрузка идет в профиль текущего пользователя. При отрицательном значении загрузка идет в группу.
  • crop_x – координата X верхнего правого угла миниатюры.
  • crop_y – координата Y верхнего правого угла миниатюры.
  • crop_width – сторона квадрата миниатюры. При передаче всех crop_* для фотографии также будет подготовлена квадратная миниатюра.
photo_chat(photo, chat_id)[source]

Загрузка и смена обложки в беседе

Parameters:
  • photo – путь к изображению или file-like объект
  • chat_id – ID беседы
photo_wall(photos, user_id=None, group_id=None, caption=None)[source]

Загрузка изображений на стену пользователя или в группу

Parameters:
  • photos (str or list) – путь к изображению(ям) или file-like объект(ы)
  • user_id – идентификатор пользователя
  • group_id – идентификатор сообщества (если загрузка идет в группу)
  • caption – текст описания фотографии.
photo_market(photo, group_id, main_photo=False, crop_x=None, crop_y=None, crop_width=None)[source]

Загрузка изображений для товаров в магазине

Parameters:
  • photo (str or list) – путь к изображению(ям) или file-like объект(ы)
  • group_id (int) – идентификатор сообщества, для которого необходимо загрузить фотографию товара
  • main_photo (bool) – является ли фотография обложкой товара
  • crop_x (int) – координата x для обрезки фотографии (верхний правый угол)
  • crop_y (int) – координата y для обрезки фотографии (верхний правый угол)
  • crop_width (int) – ширина фотографии после обрезки в px
photo_market_album(photo, group_id)[source]

Загрузка фотографии для подборки товаров

Parameters:
  • photo (str or list) – путь к изображению(ям) или file-like объект(ы)
  • group_id (int) – идентификатор сообщества, для которого необходимо загрузить фотографию для подборки товаров
audio(audio, artist, title)[source]

Загрузка аудио

Parameters:
  • audio – путь к аудиофайлу или file-like объект
  • artist – исполнитель
  • title – название
video(video_file=None, link=None, name=None, description=None, is_private=None, wallpost=None, group_id=None, album_id=None, privacy_view=None, privacy_comment=None, no_comments=None, repeat=None)[source]

Загрузка видео

Parameters:
  • video_file (object or str) – путь к видеофайлу или file-like объект.
  • link (str) – url для встраивания видео с внешнего сайта, например, с Youtube.
  • name (str) – название видеофайла
  • description (str) – описание видеофайла
  • is_private (bool) – указывается 1, если видео загружается для отправки личным сообщением. После загрузки с этим параметром видеозапись не будет отображаться в списке видеозаписей пользователя и не будет доступна другим пользователям по ее идентификатору.
  • wallpost (bool) – требуется ли после сохранения опубликовать запись с видео на стене.
  • group_id (int) – идентификатор сообщества, в которое будет сохранен видеофайл. По умолчанию файл сохраняется на страницу текущего пользователя.
  • album_id (int) – идентификатор альбома, в который будет загружен видеофайл.
  • privacy_view – настройки приватности просмотра видеозаписи в специальном формате. (https://vk.com/dev/objects/privacy) Приватность доступна для видеозаписей, которые пользователь загрузил в профиль. (список слов, разделенных через запятую)
  • privacy_comment – настройки приватности комментирования видеозаписи в специальном формате. (https://vk.com/dev/objects/privacy)
  • no_comments (bool) – 1 — закрыть комментарии (для видео из сообществ).
  • repeat (bool) – зацикливание воспроизведения видеозаписи. Флаг.
document(doc, title=None, tags=None, group_id=None, to_wall=False, message_peer_id=None, doc_type=None)[source]

Загрузка документа

Parameters:
  • doc – путь к документу или file-like объект
  • title – название документа
  • tags – метки для поиска
  • group_id – идентификатор сообщества (если загрузка идет в группу)
document_wall(doc, title=None, tags=None, group_id=None)[source]

Загрузка документа в папку Отправленные, для последующей отправки документа на стену или личным сообщением.

Parameters:
  • doc – путь к документу или file-like объект
  • title – название документа
  • tags – метки для поиска
  • group_id – идентификатор сообщества (если загрузка идет в группу)
document_message(doc, title=None, tags=None, peer_id=None)[source]

Загрузка документа для отправки личным сообщением.

Parameters:
  • doc – путь к документу или file-like объект
  • title – название документа
  • tags – метки для поиска
  • peer_id – peer_id беседы
audio_message(audio, peer_id=None, group_id=None)[source]

Загрузка аудио-сообщения.

Parameters:
  • audio – путь к аудиофайлу или file-like объект
  • peer_id – идентификатор диалога
  • group_id – для токена группы, можно передавать ID группы, вместо peer_id
graffiti(image, peer_id=None, group_id=None)[source]

Загрузка граффити

Parameters:
  • image – путь к png изображению или file-like объект.
  • peer_id – идентификатор диалога (только для авторизации пользователя)
  • group_id – для токена группы, нужно передавать ID группы, вместо peer_id
photo_cover(photo, group_id, crop_x=None, crop_y=None, crop_x2=None, crop_y2=None)[source]

Загрузка изображения профиля

Parameters:
  • photo – путь к изображению или file-like объект
  • group_id – идентификатор сообщества
  • crop_x – координата X верхнего левого угла для обрезки изображения
  • crop_y – координата Y верхнего левого угла для обрезки изображения
  • crop_x2 – коорд. X нижнего правого угла для обрезки изображения
  • crop_y2 – коорд. Y нижнего правого угла для обрезки изображения
story(file, file_type, add_to_news=True, user_ids=None, reply_to_story=None, link_text=None, link_url=None, group_id=None)[source]

Загрузка истории

Parameters:
  • file – путь к изображению, гифке или видео или file-like объект
  • file_type – тип истории (photo или video)
  • add_to_news – размещать ли историю в новостях
  • user_ids – идентификаторы пользователей, которые будут видеть историю
  • reply_to_story – идентификатор истории, в ответ на которую создается новая
  • link_text – текст ссылки для перехода из истории
  • link_url – адрес ссылки для перехода из истории
  • group_id – идентификатор сообщества, в которое должна быть загружена история

VkTools

Модуль для выкачивания множества результатов

class vk_api.tools.VkTools(vk)[source]

Содержит некоторые вспомогательные функции, которые могут понадобиться при использовании API

Parameters:vk – Объект VkApi
get_all_iter(method, max_count, values=None, key='items', limit=None, stop_fn=None, negative_offset=False)[source]

Получить все элементы.

Работает в методах, где в ответе есть count и items или users. За один запрос получает max_count * 25 элементов

Parameters:
  • method (str) – имя метода
  • max_count (int) – максимальное количество элементов, которое можно получить за один запрос
  • values (dict) – параметры
  • key (str) – ключ элементов, которые нужно получить
  • limit (int) – ограничение на количество получаемых элементов, но может прийти больше
  • stop_fn (func) – функция, отвечающая за выход из цикла
  • negative_offset (bool) – True если offset должен быть отрицательный
get_all(method, max_count, values=None, key='items', limit=None, stop_fn=None, negative_offset=False)[source]

Использовать только если нужно загрузить все объекты в память.

Eсли вы можете обрабатывать объекты по частям, то лучше использовать get_all_iter

Например если вы записываете объекты в БД, то нет смысла загружать все данные в память

get_all_slow_iter(method, max_count, values=None, key='items', limit=None, stop_fn=None, negative_offset=False)[source]

Получить все элементы (без использования execute)

Работает в методах, где в ответе есть count и items или users

Parameters:
  • method (str) – имя метода
  • max_count (int) – максимальное количество элементов, которое можно получить за один запрос
  • values (dict) – параметры
  • key (str) – ключ элементов, которые нужно получить
  • limit (int) – ограничение на количество получаемых элементов, но может прийти больше
  • stop_fn (func) – функция, отвечающая за выход из цикла
  • negative_offset (bool) – True если offset должен быть отрицательный
get_all_slow(method, max_count, values=None, key='items', limit=None, stop_fn=None, negative_offset=False)[source]

Использовать только если нужно загрузить все объекты в память.

Eсли вы можете обрабатывать объекты по частям, то лучше использовать get_all_slow_iter

Например если вы записываете объекты в БД, то нет смысла загружать все данные в память

Модуль longpoll (VkLongPoll)

Модуль для работы с User Long Poll API

class vk_api.longpoll.VkLongPoll(vk, wait=25, mode=234, preload_messages=False, group_id=None)[source]

Класс для работы с longpoll-сервером

Подробнее в документации VK API.

Parameters:
  • vk – объект VkApi
  • wait – время ожидания
  • mode – дополнительные опции ответа
  • preload_messages – предзагрузка данных сообщений для получения ссылок на прикрепленные файлы
  • group_id – идентификатор сообщества (для сообщений сообщества с ключом доступа пользователя)
DEFAULT_EVENT_CLASS

Класс для событий

alias of Event

PRELOAD_MESSAGE_EVENTS = [<VkEventType.MESSAGE_NEW: 4>, <VkEventType.MESSAGE_EDIT: 5>]

События, для которых можно загрузить данные сообщений из API

check()[source]

Получить события от сервера один раз

Returns:list of Event
preload_message_events_data(events)[source]

Предзагрузка данных сообщений из API

listen()[source]

Слушать сервер

Yields:Event
class vk_api.longpoll.Event(raw)[source]

Событие, полученное от longpoll-сервера.

Имеет поля в соответствии с документацией.

События MESSAGE_NEW и MESSAGE_EDIT имеют (среди прочих) такие поля:

События с полем timestamp также дополнительно имеют поле datetime.

class vk_api.longpoll.VkLongpollMode[source]

Дополнительные опции ответа

Подробнее в документации VK API

GET_ATTACHMENTS = 2

Получать вложения

GET_EXTENDED = 8

Возвращать расширенный набор событий

GET_PTS = 32

возвращать pts для метода messages.getLongPollHistory

GET_EXTRA_ONLINE = 64

В событии с кодом 8 (друг стал онлайн) возвращать дополнительные данные в поле extra

GET_RANDOM_ID = 128

Возвращать поле random_id

class vk_api.longpoll.VkEventType[source]

Перечисление событий, получаемых от longpoll-сервера.

Подробнее в документации VK API

MESSAGE_FLAGS_REPLACE = 1

Замена флагов сообщения (FLAGS:=$flags)

MESSAGE_FLAGS_SET = 2

Установка флагов сообщения (FLAGS|=$mask)

MESSAGE_FLAGS_RESET = 3

Сброс флагов сообщения (FLAGS&=~$mask)

MESSAGE_NEW = 4

Добавление нового сообщения.

MESSAGE_EDIT = 5

Редактирование сообщения.

READ_ALL_INCOMING_MESSAGES = 6

Прочтение всех входящих сообщений в $peer_id, пришедших до сообщения с $local_id.

READ_ALL_OUTGOING_MESSAGES = 7

Прочтение всех исходящих сообщений в $peer_id, пришедших до сообщения с $local_id.

USER_ONLINE = 8

Друг $user_id стал онлайн. $extra не равен 0, если в mode был передан флаг 64. В младшем байте числа extra лежит идентификатор платформы (см. VkPlatform). $timestamp — время последнего действия пользователя $user_id на сайте.

USER_OFFLINE = 9

Друг $user_id стал оффлайн ($flags равен 0, если пользователь покинул сайт и 1, если оффлайн по таймауту). $timestamp — время последнего действия пользователя $user_id на сайте.

PEER_FLAGS_RESET = 10

Сброс флагов диалога $peer_id. Соответствует операции (PEER_FLAGS &= ~$flags). Только для диалогов сообществ.

PEER_FLAGS_REPLACE = 11

Замена флагов диалога $peer_id. Соответствует операции (PEER_FLAGS:= $flags). Только для диалогов сообществ.

PEER_FLAGS_SET = 12

Установка флагов диалога $peer_id. Соответствует операции (PEER_FLAGS|= $flags). Только для диалогов сообществ.

PEER_DELETE_ALL = 13

Удаление всех сообщений в диалоге $peer_id с идентификаторами вплоть до $local_id.

PEER_RESTORE_ALL = 14

Восстановление недавно удаленных сообщений в диалоге $peer_id с идентификаторами вплоть до $local_id.

CHAT_EDIT = 51

Один из параметров (состав, тема) беседы $chat_id были изменены. $self — 1 или 0 (вызваны ли изменения самим пользователем).

CHAT_UPDATE = 52

Изменение информации чата $peer_id с типом $type_id $info — дополнительная информация об изменениях

USER_TYPING = 61

Пользователь $user_id набирает текст в диалоге. Событие приходит раз в ~5 секунд при наборе текста. $flags = 1.

USER_TYPING_IN_CHAT = 62

Пользователь $user_id набирает текст в беседе $chat_id.

USER_RECORDING_VOICE = 64

Пользователь $user_id записывает голосовое сообщение в диалоге/беседе $peer_id

USER_CALL = 70

Пользователь $user_id совершил звонок с идентификатором $call_id.

MESSAGES_COUNTER_UPDATE = 80

Счетчик в левом меню стал равен $count.

NOTIFICATION_SETTINGS_UPDATE = 114

Изменились настройки оповещений. $peer_id — идентификатор чата/собеседника, $sound — 1/0, включены/выключены звуковые оповещения, $disabled_until — выключение оповещений на необходимый срок.

class vk_api.longpoll.VkPlatform[source]

Идентификаторы платформ

MOBILE = 1

Мобильная версия сайта или неопознанное мобильное приложение

IPHONE = 2

Официальное приложение для iPhone

IPAD = 3

Официальное приложение для iPad

ANDROID = 4

Официальное приложение для Android

WPHONE = 5

Официальное приложение для Windows Phone

WINDOWS = 6

Официальное приложение для Windows 8

WEB = 7

Полная версия сайта или неопознанное приложение

class vk_api.longpoll.VkOfflineType[source]

Выход из сети в событии VkEventType.USER_OFFLINE

EXIT = 0

Пользователь покинул сайт

AWAY = 1

Оффлайн по таймауту

class vk_api.longpoll.VkMessageFlag[source]

Флаги сообщений

UNREAD = 1

Сообщение не прочитано.

OUTBOX = 2

Исходящее сообщение.

REPLIED = 4

На сообщение был создан ответ.

IMPORTANT = 8

Помеченное сообщение.

CHAT = 16

Сообщение отправлено через чат.

FRIENDS = 32

Сообщение отправлено другом. Не применяется для сообщений из групповых бесед.

SPAM = 64

Сообщение помечено как “Спам”.

DELETED = 128

Сообщение удалено (в корзине).

FIXED = 256

Сообщение проверено пользователем на спам.

MEDIA = 512

Сообщение содержит медиаконтент

HIDDEN = 65536

Приветственное сообщение от сообщества.

DELETED_ALL = 131072

Сообщение удалено для всех получателей.

class vk_api.longpoll.VkPeerFlag[source]

Флаги диалогов

IMPORTANT = 1

Важный диалог

UNANSWERED = 2

Неотвеченный диалог

Модуль bot_longpoll (VkBotLongPoll)

Модуль для работы с Bots Long Poll API

class vk_api.bot_longpoll.VkBotLongPoll(vk, group_id, wait=25)[source]

Класс для работы с Bots Long Poll сервером

Подробнее в документации VK API.

Parameters:
  • vk – объект VkApi
  • group_id – id группы
  • wait – время ожидания
CLASS_BY_EVENT_TYPE = {'message_edit': <class 'vk_api.bot_longpoll.VkBotMessageEvent'>, 'message_new': <class 'vk_api.bot_longpoll.VkBotMessageEvent'>, 'message_reply': <class 'vk_api.bot_longpoll.VkBotMessageEvent'>}

Классы для событий по типам

DEFAULT_EVENT_CLASS

Класс для событий

alias of VkBotEvent

check()[source]

Получить события от сервера один раз

Returns:list of Event
listen()[source]

Слушать сервер

Yields:Event
class vk_api.bot_longpoll.VkBotEvent(raw)[source]

Событие Bots Long Poll

Variables:
  • raw – событие, в каком виде было получено от сервера
  • type (VkBotEventType or str) – тип события
  • t (VkBotEventType or str) – сокращение для type
  • object – объект события, в каком виде был получен от сервера
  • obj – сокращение для object
  • group_id (int) – ID группы бота
class vk_api.bot_longpoll.VkBotMessageEvent(raw)[source]

Bases: vk_api.bot_longpoll.VkBotEvent

Событие с сообщением Bots Long Poll

Variables:
  • from_user (bool) – сообщение от пользователя
  • from_chat (bool) – сообщение из беседы
  • from_group (bool) – сообщение от группы
  • chat_id (int) – ID чата

VkKeyboard

Модуль для удобного создания клавиатур для ботов

class vk_api.keyboard.VkKeyboard(one_time=False, inline=False)[source]

Класс для создания клавиатуры для бота (https://vk.com/dev/bots_docs_3) :param one_time: Если True, клавиатура исчезнет после нажатия на кнопку :type one_time: bool

get_keyboard()[source]

Получить json клавиатуры

classmethod get_empty_keyboard()[source]

Получить json пустой клавиатуры. Если отправить пустую клавиатуру, текущая у пользователя исчезнет.

add_button(label, color=<VkKeyboardColor.SECONDARY: 'secondary'>, payload=None)[source]
Добавить кнопку с текстом.
Максимальное количество кнопок на строке - MAX_BUTTONS_ON_LINE
Parameters:
  • label (str) – Надпись на кнопке и текст, отправляющийся при её нажатии.
  • color (VkKeyboardColor or str) – цвет кнопки.
  • payload (str or list or dict) – Параметр для callback api
add_callback_button(label, color=<VkKeyboardColor.SECONDARY: 'secondary'>, payload=None)[source]
Добавить callback-кнопку с текстом.
Максимальное количество кнопок на строке - MAX_BUTTONS_ON_LINE
Parameters:
  • label (str) – Надпись на кнопке и текст, отправляющийся при её нажатии.
  • color (VkKeyboardColor or str) – цвет кнопки.
  • payload (str or list or dict) – Параметр для callback api
add_location_button(payload=None)[source]
Добавить кнопку с местоположением.
Всегда занимает всю ширину линии.
Parameters:payload (str or list or dict) – Параметр для callback api
add_vkpay_button(hash, payload=None)[source]
Добавить кнопку с оплатой с помощью VKPay.
Всегда занимает всю ширину линии.
Parameters:hash – Параметры платежа VKPay и ID приложения

(в поле aid) разделённые & :type hash: str :param payload: Параметр для совместимости со старыми клиентами :type payload: str or list or dict

add_vkapps_button(app_id, owner_id, label, hash, payload=None)[source]
Добавить кнопку с приложением VK Apps.
Всегда занимает всю ширину линии.
Parameters:
  • app_id (int) – Идентификатор вызываемого приложения с типом VK Apps
  • owner_id – Идентификатор сообщества, в котором установлено

приложение, если требуется открыть в контексте сообщества :type owner_id: int :param label: Название приложения, указанное на кнопке :type label: str :param hash: хэш для навигации в приложении, будет передан в строке параметров запуска после символа # :type hash: str :param payload: Параметр для совместимости со старыми клиентами :type payload: str or list or dict

Добавить кнопку с ссылкой
Максимальное количество кнопок на строке - MAX_BUTTONS_ON_LINE
Parameters:
  • label (str) – Надпись на кнопке
  • link (str) – ссылка, которую необходимо открыть по нажатию на кнопку
  • payload (str or list or dict) – Параметр для callback api
add_line()[source]

Создаёт новую строку, на которой можно размещать кнопки. Максимальное количество строк:

Стандартное отображение - MAX_DEFAULT_LINES; Inline-отображение - MAX_INLINE_LINES.
class vk_api.keyboard.VkKeyboardColor[source]

Возможные цвета кнопок

PRIMARY = 'primary'

Синяя

SECONDARY = 'secondary'

Белая

NEGATIVE = 'negative'

Красная

POSITIVE = 'positive'

Зелёная

class vk_api.keyboard.VkKeyboardButton[source]

Возможные типы кнопки

TEXT = 'text'

Кнопка с текстом

LOCATION = 'location'

Кнопка с местоположением

VKPAY = 'vkpay'

Кнопка с оплатой через VKPay

VKAPPS = 'open_app'

Кнопка с приложением VK Apps

Кнопка с ссылкой

CALLBACK = 'callback'

Callback-кнопка

VkAudio

Модуль для работы с аудио

class vk_api.audio.VkAudio(vk, convert_m3u8_links=True)[source]

Модуль для получения аудиозаписей без использования официального API.

Parameters:vk – Объект VkApi
get_iter(owner_id=None, album_id=None, access_hash=None)[source]

Получить список аудиозаписей пользователя (по частям)

Parameters:
  • owner_id – ID владельца (отрицательные значения для групп)
  • album_id – ID альбома
  • access_hash – ACCESS_HASH альбома
get(owner_id=None, album_id=None, access_hash=None)[source]

Получить список аудиозаписей пользователя

Parameters:
  • owner_id – ID владельца (отрицательные значения для групп)
  • album_id – ID альбома
  • access_hash – ACCESS_HASH альбома
get_albums_iter(owner_id=None)[source]

Получить список альбомов пользователя (по частям)

Parameters:owner_id – ID владельца (отрицательные значения для групп)
get_albums(owner_id=None)[source]

Получить список альбомов пользователя

Parameters:owner_id – ID владельца (отрицательные значения для групп)
search_user(owner_id=None, q='')[source]

Искать по аудиозаписям пользователя

Parameters:
  • owner_id – ID владельца (отрицательные значения для групп)
  • q – запрос
search(q, count=100, offset=0)[source]

Искать аудиозаписи

Parameters:
  • q – запрос
  • count – количество
  • offset – смещение
search_iter(q, offset=0)[source]

Искать аудиозаписи (генератор)

Parameters:
  • q – запрос
  • offset – смещение
get_updates_iter()[source]

Искать обновления друзей (генератор)

Искать популярные аудиозаписи (генератор)

Parameters:offset – смещение
get_news_iter(offset=0)[source]

Искать популярные аудиозаписи (генератор)

Parameters:offset – смещение
get_audio_by_id(owner_id, audio_id)[source]

Получить аудиозапись по ID

Parameters:
  • owner_id – ID владельца (отрицательные значения для групп)
  • audio_id – ID аудио
get_post_audio(owner_id, post_id)[source]

Получить список аудиозаписей из поста пользователя или группы

Parameters:
  • owner_id – ID владельца (отрицательные значения для групп)
  • post_id – ID поста

VkStreaming

Модуль для работы с Streaming API

class vk_api.streaming.VkStreaming(vk)[source]

Класс для работы с Streaming API

Подробнее в документации VK API.

Parameters:vk – объект VkApi
get_rules()[source]

Получить список добавленных правил

add_rule(value, tag)[source]

Добавить правило

Parameters:
  • value (str) – Строковое представление правила
  • tag (str) – Тег правила
delete_rule(tag)[source]

Удалить правило

Parameters:tag (str) – Тег правила
listen()[source]

Слушать сервер

VkRequestsPool

Модуль для объединения запросов в один запрос execute

class vk_api.requests_pool.VkRequestsPool(vk_session)[source]

Позволяет сделать несколько обращений к API за один запрос за счет метода execute.

Варианты использованя: - В качестве менеджера контекста: запросы к API добавляются в открытый пул, и выполняются при его закрытии. - В качестве объекта пула. запросы к API дабвляются по одному в пул и выполняются все вместе при выполнении метода execute()

Parameters:vk_session – Объект VkApi
method(method, values=None)[source]
Добавляет запрос в пул.
Возвращаемое значение будет содержать результат после закрытия пула.
Parameters:
  • method (str) – метод
  • values (dict) – параметры
Return type:

RequestResult

execute()[source]

Выполняет все находящиеся в пуле запросы и отчищает пул. Необходим для использования пула-объекта. Для пула менеджера контекста вызывается автоматически.

class vk_api.requests_pool.RequestResult[source]

Результат запроса из пула

error

Ошибка, либо False, если запрос прошёл успешно.

result

Результат запроса, если он прошёл успешно.

ok

True, если результат запроса не содержит ошибок, иначе False

vk_api.requests_pool.vk_request_one_param_pool(vk_session, method, key, values, default_values=None)[source]
Использовать, если изменяется значение только одного параметра.
Возвращаемое значение содержит tuple из dict с результатами и dict с ошибками при выполнении
Parameters:
  • vk_session (vk_api.VkAPi) – объект VkApi
  • method (str) – метод
  • default_values (dict) – одинаковые значения для запросов
  • key (str) – ключ изменяющегося параметра
  • values (list) – список значений изменяющегося параметра (max: 25)
Return type:

(dict, dict)

VkFunction

Модуль для работы с методом execute

class vk_api.execute.VkFunction(code, args=None, clean_args=None, return_raw=False)[source]

Обертка над методом execute.

Parameters:
  • code – код функции (VKScript)
  • args – список аргументов (будут конвертированы в JSON)
  • clean_args – список raw аргументов (будут вставлены как строки)
  • return_raw – аргумент raw функции VkApi.method
__call__(vk, *args, **kwargs)[source]
Parameters:
  • vk – VkApi или VkApiMethod
  • *args
  • **kwargs

Enums

class vk_api.enums.VkUserPermissions[source]

Bases: enum.IntEnum

Перечисление прав пользователя. Список прав получается побитовым сложением (x | y) каждого права. Подробнее в документации VK API: https://vk.com/dev/permissions

NOTIFY = 1

Пользователь разрешил отправлять ему уведомления (для flash/iframe-приложений). Не работает с этой библиотекой.

FRIEND = 2

Доступ к друзьям.

PHOTOS = 4

Доступ к фотографиям.

AUDIO = 8

Доступ к аудиозаписям. При отсутствии доступа к закрытому API аудиозаписей это право позволяет только загрузку аудио.

VIDEO = 16

Доступ к видеозаписям.

STORIES = 64

Доступ к историям.

PAGES = 128

Доступ к wiki-страницам.

Добавление ссылки на приложение в меню слева.

STATUS = 1024

Доступ к статусу пользователя.

NOTES = 2048

Доступ к заметкам пользователя.

MESSAGES = 4096

Доступ к расширенным методам работы с сообщениями.

WALL = 8192

Доступ к обычным и расширенным методам работы со стеной.

ADS = 32768

Доступ к расширенным методам работы с рекламным API.

OFFLINE = 65536

Доступ к API в любое время. Рекомендуется при работе с этой библиотекой.

DOCS = 131072

Доступ к документам.

GROUPS = 262144

Доступ к группам пользователя.

NOTIFICATIONS = 524288

Доступ к оповещениям об ответах пользователю.

STATS = 1048576

Доступ к статистике групп и приложений пользователя, администратором которых он является.

EMAIL = 4194304

Доступ к email пользователя.

MARKET = 134217728

Доступ к товарам.

Исключения

authors:

python273

license:

Apache License, Version 2.0, see LICENSE file

copyright:
  1. 2019 python273
exception vk_api.exceptions.VkApiError[source]

Bases: Exception

exception vk_api.exceptions.AccessDenied[source]

Bases: vk_api.exceptions.VkApiError

exception vk_api.exceptions.AuthError[source]

Bases: vk_api.exceptions.VkApiError

exception vk_api.exceptions.LoginRequired[source]

Bases: vk_api.exceptions.AuthError

exception vk_api.exceptions.PasswordRequired[source]

Bases: vk_api.exceptions.AuthError

exception vk_api.exceptions.BadPassword[source]

Bases: vk_api.exceptions.AuthError

exception vk_api.exceptions.AccountBlocked[source]

Bases: vk_api.exceptions.AuthError

exception vk_api.exceptions.TwoFactorError[source]

Bases: vk_api.exceptions.AuthError

exception vk_api.exceptions.SecurityCheck(phone_prefix=None, phone_postfix=None, response=None)[source]

Bases: vk_api.exceptions.AuthError

exception vk_api.exceptions.ApiError(vk, method, values, raw, error)[source]

Bases: vk_api.exceptions.VkApiError

try_method()[source]

Отправить запрос заново

exception vk_api.exceptions.ApiHttpError(vk, method, values, raw, response)[source]

Bases: vk_api.exceptions.VkApiError

try_method()[source]

Отправить запрос заново

exception vk_api.exceptions.Captcha(vk, captcha_sid, func, args=None, kwargs=None, url=None)[source]

Bases: vk_api.exceptions.VkApiError

get_url()[source]

Получить ссылку на изображение капчи

get_image()[source]

Получить изображение капчи (jpg)

try_again(key=None)[source]

Отправить запрос заново с ответом капчи

Parameters:key – ответ капчи
exception vk_api.exceptions.VkAudioException[source]

Bases: Exception

exception vk_api.exceptions.VkAudioUrlDecodeError[source]

Bases: vk_api.exceptions.VkAudioException

exception vk_api.exceptions.VkToolsException[source]

Bases: vk_api.exceptions.VkApiError

exception vk_api.exceptions.VkRequestsPoolException(error, *args, **kwargs)[source]

Bases: Exception

Пакет jconfig

BaseConfig

class jconfig.base.BaseConfig(section, **kwargs)[source]

Абстрактный базовый класс конфигурации. У наследуемых классов должен быть определен __slots__

Parameters:
  • section – имя подкатегории в конфиге
  • **kwargs – будут переданы в load()
load(**kwargs)[source]

Абстрактный метод, должен возвращать dict с конфигом

save()[source]

Абстрактный метод, должен сохранять конфиг

Config (хранение в json файле)

class jconfig.jconfig.Config(section, filename='.jconfig')[source]

Bases: jconfig.base.BaseConfig

Класс конфигурации в файле

Parameters:filename – имя файла

MemoryConfig (хранение в памяти)

class jconfig.memory.MemoryConfig(section, **kwargs)[source]

Bases: jconfig.base.BaseConfig

Класс конфигурации в памяти

Parameters:settings – существующий dict с конфигом

Indices and tables