Модуль 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, VkEventType.MESSAGE_EDIT]

События, для которых можно загрузить данные сообщений из 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(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[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(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[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(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[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(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

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

EXIT = 0

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

AWAY = 1

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

class vk_api.longpoll.VkMessageFlag(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[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(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

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

IMPORTANT = 1

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

UNANSWERED = 2

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