Как авторизоваться в вк через python
Перейти к содержимому

Как авторизоваться в вк через python

  • автор:

Авторизация в VK API с помощью логина и пароля

Авторизация в VK API с помощью логина и пароля

2014-08-15 в 10:28, admin , рубрики: python3, vk api

Давно хотелось написать какое-нибудь приложение, используя VK API. Решено было написать некий каркас, добавляя плагины к которому можно было бы реализовать какие-то мелкие задачи, которые нужны в данный момент: от скачивания музыки до банального поддержания аккаунта онлайн. Запускать данное творение планировалось как на сервере, так и на ПК. С проблемами, вставшими на моем пути во время разработки, включая озвученную в заголовке, я и хотел бы вас познакомить.

Шаг 0. Изучение документации

Итак, задача поставлена, теперь необходимо изучить платформу VK API. Ознакомившись с методами было замечено, что многие из них требуют получения access_token, или, проще говоря, авторизации пользователя.

  1. OAuth-авторизация
  2. Прямая авторизация
  3. Авторизация с использованием официального приложения (предоставляется в SDK)

Теперь подробнее о методах в порядке возрастания их полезности:

Авторизация с использованием официального приложения

Приложение состыковывается с официальным приложением для Android или iOS, которое дает ему интерфейс для взаимодействия с API.
Собственно, без комментариев, способ совсем для других платформ и задач.

OAuth-авторизация

Необходимо открыть страницу авторизации в браузере, где пользователь, если он еще не авторизован на сайте, введет свой логин и пароль и разрешит доступ к его аккаунту.
Этот способ не понравился сразу по двум причинам: во-первых, токен таким образом необходимо получать каждые 24 часа, во-вторых, для его получения нужно каждый раз заходить на сервер, открывать lynx, авторизовываться и разрешать доступ. Не очень удобно. Есть, конечно, такой вариант, но всё-таки решено было поискать что-то другое.

Прямая авторизация

Передача логина и пароля непосредственно GET-запросом на определенный URL. Токен в итоге получается бессрочный и без привязки по IP.
Идеально подходящий, казалось бы, способ, если бы не одно «но»:

Внимание! Доступ к этому типу авторизации может быть получен только после предварительного согласования с администрацией ВКонтакте.

Для подачи заявки на получение доступа Вам необходимо обратиться в службу поддержки по адресу vk.com/support, указав ID Вашего приложения.

В настоящий момент эта возможность предоставляется только для платформ, не поддерживающих стандартную авторизацию. В заявке необходимо кратко описать функционал приложения.

Объяснять, что пишу просто каркас для любой своей будущей идеи, думаю, было бессмысленно, поэтому пришлось искать какие-то обходные пути.

Шаг 1. Обходные пути

Расстроившись тем фактом, что простым смертным получить доступ к прямой авторизации достаточно сложно, я уже чуть было не похоронил свою идею.
Однако, в один прекрасный день, во время чтения ленты новостей в официальном приложении VK на планшете под управлением Windows 8, в голову пришла мысль: а почему бы не взять access_token из этого приложения, он ведь бессрочный и без привязки к IP. Ну, или еще круче, перехватить app_id и app_secret во время авторизации официального приложения. Всё бы ничего, если бы не авторизация, конечно же, по https протоколу.
Загоревшись идеей кражи app_id и app_secret пришла в голову еще одна идея — декомпилировать клиент и попробовать поискать там.
Сказано — сделано: наверняка metro-приложение VK написано на C#, значит нужно найти C# декомпилятор. Первым в Google нашёлся JetBrains dotPeek. Хорошо, попробуем.
Далее неплохо было бы найти само приложение VK. После не очень долгого поиска было выяснено, что metro-приложения в Windows 8.1 хранятся в скрытой папке C:Program FilesWindowsApps.
Отлично! Пытаемся зайти и видим:

Авторизация в VK API с помощью логина и пароля

Мы, вроде бы, администраторы, тыкаем на «Продолжить»:

Авторизация в VK API с помощью логина и пароля

Весело, зайдём на вкладку «Безопасность», там нам предложат задать особые разрешения в «Дополнительно», зайдем в «Дополнительно»:

Авторизация в VK API с помощью логина и пароля

Поменяем владельца на себя, щелкнув на «Изменить», введя в диалоге свой email учетной записи microsoft, либо имя локального пользователя и щелнув на «Проверить имена». Сохраним всё это и теперь мы можем зайти в папку с нашими metro-приложениями. Ищем папку с VK, забираем оттуда VK.exe и скармливаем его нашему декомпилятору. Структура приложения видна для нас идеально, все названия функций и классов сохранились, недолгим гулянием по классам находим функцию Authorize, содержащую строку req, в которой есть два замечательных параметра:

Авторизация в VK API с помощью логина и пароля

Вуаля! client_id и client_secret наши.

Теперь мы можем авторизовываться, используя прямую авторизацию!
Попользовавшись данными client_id и client_secret мне все-таки стало интересно, что ответит поддержка на возможность их использования. После небольшой дискуссии был получен следующий ответ:

Авторизация в VK API с помощью логина и пароля

Интересная, конечно, позиция. Хорошо, расслабляемся и пользуемся.

Шаг 2. Собственно каркас

Желаемый каркас всё-таки был написан. В качестве языка программирования был выбран Python.
Состоит он из ядра и подключаемых плагинов. Ядро осуществляет авторизацию, работу с sqlite базой данных, импорт плагинов, опрос longpoll-сервера.
Плагины гибко взаимодействуют с ядром. О структуре плагина:
Чтобы ядро восприняло файл как плагин, в нем должна быть объявлена переменная:

Для того, чтобы добавить параметры в конфиг-файл, плагину необходимо объявить переменную config_parameters:

Чтобы создать таблицы в БД (если они еще не существуют), необходимо объявить переменную sql_tables:

Также реализован набор стандартных хендлеров (добавить новые хендлеры можно и в плагинах, так уже реализован хендлер текстовых команд).

  • before_auth_handlers — функции вызываются перед авторизацией, с единственным параметром — основным объектом, в котором можно получить доступ к VK API, хоть это и бесполезно перед авторизацией
  • after_auth_handlers — функции вызываются после авторизации, с тем же единственным параметром
  • exit_handlers — функции вызываются перед выходом, так же с единственным параметром
  • longpoll_handlers — функции вызываются при получении сообщения от longpoll-сервера, параметров здесь много, что они значат можно посмотреть в документации по VK API: (vkbuddy, code, msgid, flags, from_id, ts, subj, text, attachments)

На github можно ознакомиться с результатом, примерами плагинов и прочим, а также поучаствовать в разработке.

VK requests for humans™

vk.com is the largest social network in Russia.

Requirements

  • python (2.7, 3.4, 3.5, 3.6)

NOTE: Python 2.7 will be no longer supported starting from the version 2.0.0

Install

Usage and features

Simple queries

User token with login and password

Fits the usecase when you run queries from one on the backend from one of your accounts

Using service token

Service token is preferable way, because it does not require user credentials and oauth requests, but not all the methods can be called with service token (e.g execute can’t be)

More info about service token.

Using client access token

For example when you got a token on the client side (implicit flow) and want to query API on the backend.

Use service_token parameter as in the example above.

User token with client_secret (Direct Authorization)

Trusted applications can get unlimited access_token to access API by passing with application ID, username, password and client_secret — secret key of your application.

More info about Direct Authorization.

Using custom parameters

Scope or api version

Just pass scope and/or api_version parameters like

HTTP parameters

To override requests http parameters (e.g ssl options), just use http_params as follows:

Using HTTP proxy

To use proxy server just pass it to the http_params , e.g

For more info, take a look at requests docs

Enable logging

To enable library logging in your project you should do as follows:

Auto-resolving conflicts when you’re getting access from unusual place

Just pass your phone number during API initialization. In case of security check it will be handled automatically, otherwise console input will be asked

Interactive session

Interactive session gives you control over login parameters during the runtime.

Useful if

  • 2FA authentication required
  • CAPTCHA required
  • For testing purposes

Usage

If you don’t pass login, password and app_id you will be asked to prompt it, i.e having this

You will be asked only for 2FA authentication or captcha code if required

Streaming API

Streaming API allows to subscribe on the events from vk.

NOTE: Only for python 3.4 and later

Install

Stream rules

Consumer

Streaming API provides convenient coroutine-based handler interface (callback)

Official API docs

Tests

Tests are mostly checking integration part, so it requires some vk authentication data.

Before running tests locally define environment variables:

Bug tracker

Warm welcome for suggestions and concerns. Feel free to submit it to the Issues section

Авторизация в VK с помощью requests

Хочу авторизоваться на сайте vk.com и получить html своей страницы. В запросе передаю логин/пароль как параметры формы.

На что получаю html с предложение пройти авторизацию. Что я делаю не так?

dEll's user avatar

Я не знаю, на основании чего вы такой код написали.

Но для авторизации в VK использует oauth, читаем доки.

Suvitruf - Andrei Apanasik's user avatar

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.7.31.43550

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Авторизация в VK для людей

Здравствуй, дорогой читатель. Если тебе хотя бы однажды доводилось работать с API Вконтакте и при этом писать все на python , вероятно, авторизация приложения заставила тебя сделать несколько приседаний, после которых ног либо не чувствуешь и падаешь в обморок, либо вкачиваешь квадрицепс и все же пробиваешь API, как Ван Дамм.

По какой-то причине этот, казалось бы, самый непримечательный этап поначалу отнимает огромное количество сил и времени. Моя задача: помочь читателям Хабра избежать травм ног.

Далее я предлагаю рассмотреть небольшую библиотеку, позволяющую в одну строчку авторизовать свое приложение для конкретного пользователя и получить access_token . В конце статьи представлена ссылка на github-репозиторий этой библиотеки с quickstart’ом в README -файле.

Задача

Хотим небольшой модуль, который позволяет провести авторизацию красиво, универсально и максимально надежно, а использовать который очень просто.
Стоит сказать, что данное решение является усовершенствованием и обобщением варианта, предложенного в этой статье.

Итак, используем python3.5 , библиотеку для html запросов requests и getpass для скрытого ввода пароля.

Наша задача: несколько раз обратиться по верному адресу, каждый раз парсить <form> , отправлять ответ и наконец получить желанный access_token .

Реализация

Начнем с создания класса. При инициализации будем требовать список «разрешений», к которым приложение хочет получить доступ, id этого приложения и версию API VK. Плюсом добавим несколько необязательных параметров, значение каждого из которых прояснится далее.

Как было сказано в уже упомянутой статье, нам необходимо искусно ворочать cookie и redirect’ы. Все это за нас делает библиотека requests с объектом класса Session. Заведем и себе такой в поле self.session . Для парсинга html документа используется стандартный класс HTMLParser из модуля html.parser . Для парсера тоже написан класс ( FormParser ), разбирать который большого смысла нет, так как он почти полностью повторяет таковой из упомянутой статьи. Существенное отличие лишь в том, что использованный здесь позволяет изящно отклонить авторизацию приложения на последнем шаге, если вы вдруг передумали.

Поля user_id и access_token будут заполнены после успешной авторизации, response хранит в себе результат последнего html запроса.

Пользователю библиотеки предоставим один-единственный метод – authorize , который совершает 3 шага:

  1. запрос на авторизацию приложения
  2. авторизация пользователя
    2.1 введение кода-ключа в случае двух-факторной авторизации
  3. подтверждение разрешения на использование permissions

Пройдемся по каждому шагу.

Шаг 1. Запрос на авторизацию приложения

Аккуратно составляем url запроса (про параметры можно прочитать здесь), отправляем запрос и парсим полученный html.

Шаг 2. Авторизация пользователя

Реализованы методы _log_in() и _two_fact_auth() для [не]успешной авторизации пользователя в вк, если он не авторизован (а он точно не авторизован). Оба метода используют ранее определенные поля email , pswd , two_factor_auth и security_code . Если какое-то из полей не было подано аргументом при инициализации объекта класса VKAuth , их попросят ввести в консоли, а случае неудачи попросят ввести заново. Двух-факторная авторизация опциональна и по умолчанию отключена, и наш модуль уведомляет пользователя о ее присутствии ошибкой.

Шаг 3. Подтверждение permissions и получение access_token

Самое сложное позади. Теперь дело за малым. Используем наше усовершенствование парсера формы, чтоб найти в только что поступившем к нам html документе кнопку с надписью «Allow» и вытащить из нее url подтверждения авторизации. Рядом находится кнопка с отказом – сохраним и ее url. Поле auto_access по умолчанию находится в состоянии True , так что это подтверждение ни чуть не должно осложнить нам жизнь.

Наконец, сохраним полученные access_token и user_id из url, который был передан после подтверждения авторизации.

VK requests for humans™

vk.com is the largest social network in Russia.

Requirements

  • python (2.7, 3.4, 3.5, 3.6)

NOTE: Python 2.7 will be no longer supported starting from the version 2.0.0

Install

Usage and features

Simple queries

User token with login and password

Fits the usecase when you run queries from one on the backend from one of your accounts

Using service token

Service token is preferable way, because it does not require user credentials and oauth requests, but not all the methods can be called with service token (e.g execute can’t be)

More info about service token.

Using client access token

For example when you got a token on the client side (implicit flow) and want to query API on the backend.

Use service_token parameter as in the example above.

User token with client_secret (Direct Authorization)

Trusted applications can get unlimited access_token to access API by passing with application ID, username, password and client_secret — secret key of your application.

More info about Direct Authorization.

Using custom parameters

Scope or api version

Just pass scope and/or api_version parameters like

HTTP parameters

To override requests http parameters (e.g ssl options), just use http_params as follows:

Using HTTP proxy

To use proxy server just pass it to the http_params , e.g

For more info, take a look at requests docs

Enable logging

To enable library logging in your project you should do as follows:

Auto-resolving conflicts when you’re getting access from unusual place

Just pass your phone number during API initialization. In case of security check it will be handled automatically, otherwise console input will be asked

Interactive session

Interactive session gives you control over login parameters during the runtime.

Useful if

  • 2FA authentication required
  • CAPTCHA required
  • For testing purposes

Usage

If you don’t pass login, password and app_id you will be asked to prompt it, i.e having this

You will be asked only for 2FA authentication or captcha code if required

Streaming API

Streaming API allows to subscribe on the events from vk.

NOTE: Only for python 3.4 and later

Install

Stream rules

Consumer

Streaming API provides convenient coroutine-based handler interface (callback)

Official API docs

Tests

Tests are mostly checking integration part, so it requires some vk authentication data.

Before running tests locally define environment variables:

Bug tracker

Warm welcome for suggestions and concerns. Feel free to submit it to the Issues section

Авторизация в VK для людей

Здравствуй, дорогой читатель. Если тебе хотя бы однажды доводилось работать с API Вконтакте и при этом писать все на python , вероятно, авторизация приложения заставила тебя сделать несколько приседаний, после которых ног либо не чувствуешь и падаешь в обморок, либо вкачиваешь квадрицепс и все же пробиваешь API, как Ван Дамм.

По какой-то причине этот, казалось бы, самый непримечательный этап поначалу отнимает огромное количество сил и времени. Моя задача: помочь читателям Хабра избежать травм ног.

Далее я предлагаю рассмотреть небольшую библиотеку, позволяющую в одну строчку авторизовать свое приложение для конкретного пользователя и получить access_token . В конце статьи представлена ссылка на github-репозиторий этой библиотеки с quickstart’ом в README -файле.

Задача

Хотим небольшой модуль, который позволяет провести авторизацию красиво, универсально и максимально надежно, а использовать который очень просто.
Стоит сказать, что данное решение является усовершенствованием и обобщением варианта, предложенного в этой статье.

Итак, используем python3.5 , библиотеку для html запросов requests и getpass для скрытого ввода пароля.

Наша задача: несколько раз обратиться по верному адресу, каждый раз парсить <form> , отправлять ответ и наконец получить желанный access_token .

Реализация

Начнем с создания класса. При инициализации будем требовать список «разрешений», к которым приложение хочет получить доступ, id этого приложения и версию API VK. Плюсом добавим несколько необязательных параметров, значение каждого из которых прояснится далее.

Как было сказано в уже упомянутой статье, нам необходимо искусно ворочать cookie и redirect’ы. Все это за нас делает библиотека requests с объектом класса Session. Заведем и себе такой в поле self.session . Для парсинга html документа используется стандартный класс HTMLParser из модуля html.parser . Для парсера тоже написан класс ( FormParser ), разбирать который большого смысла нет, так как он почти полностью повторяет таковой из упомянутой статьи. Существенное отличие лишь в том, что использованный здесь позволяет изящно отклонить авторизацию приложения на последнем шаге, если вы вдруг передумали.

Поля user_id и access_token будут заполнены после успешной авторизации, response хранит в себе результат последнего html запроса.

Пользователю библиотеки предоставим один-единственный метод – authorize , который совершает 3 шага:

  1. запрос на авторизацию приложения
  2. авторизация пользователя
    2.1 введение кода-ключа в случае двух-факторной авторизации
  3. подтверждение разрешения на использование permissions

Пройдемся по каждому шагу.

Шаг 1. Запрос на авторизацию приложения

Аккуратно составляем url запроса (про параметры можно прочитать здесь), отправляем запрос и парсим полученный html.

Шаг 2. Авторизация пользователя

Реализованы методы _log_in() и _two_fact_auth() для [не]успешной авторизации пользователя в вк, если он не авторизован (а он точно не авторизован). Оба метода используют ранее определенные поля email , pswd , two_factor_auth и security_code . Если какое-то из полей не было подано аргументом при инициализации объекта класса VKAuth , их попросят ввести в консоли, а случае неудачи попросят ввести заново. Двух-факторная авторизация опциональна и по умолчанию отключена, и наш модуль уведомляет пользователя о ее присутствии ошибкой.

Шаг 3. Подтверждение permissions и получение access_token

Самое сложное позади. Теперь дело за малым. Используем наше усовершенствование парсера формы, чтоб найти в только что поступившем к нам html документе кнопку с надписью «Allow» и вытащить из нее url подтверждения авторизации. Рядом находится кнопка с отказом – сохраним и ее url. Поле auto_access по умолчанию находится в состоянии True , так что это подтверждение ни чуть не должно осложнить нам жизнь.

Наконец, сохраним полученные access_token и user_id из url, который был передан после подтверждения авторизации.

Авторизация в VK с помощью requests

Хочу авторизоваться на сайте vk.com и получить html своей страницы. В запросе передаю логин/пароль как параметры формы.

На что получаю html с предложение пройти авторизацию. Что я делаю не так?

dEll's user avatar

Я не знаю, на основании чего вы такой код написали.

Но для авторизации в VK использует oauth, читаем доки.

Suvitruf - Andrei Apanasik's user avatar

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.7.31.43550

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Авторизация в VK API с помощью логина и пароля

Авторизация в VK API с помощью логина и пароля

2014-08-15 в 10:28, admin , рубрики: python3, vk api

Давно хотелось написать какое-нибудь приложение, используя VK API. Решено было написать некий каркас, добавляя плагины к которому можно было бы реализовать какие-то мелкие задачи, которые нужны в данный момент: от скачивания музыки до банального поддержания аккаунта онлайн. Запускать данное творение планировалось как на сервере, так и на ПК. С проблемами, вставшими на моем пути во время разработки, включая озвученную в заголовке, я и хотел бы вас познакомить.

Шаг 0. Изучение документации

Итак, задача поставлена, теперь необходимо изучить платформу VK API. Ознакомившись с методами было замечено, что многие из них требуют получения access_token, или, проще говоря, авторизации пользователя.

  1. OAuth-авторизация
  2. Прямая авторизация
  3. Авторизация с использованием официального приложения (предоставляется в SDK)

Теперь подробнее о методах в порядке возрастания их полезности:

Авторизация с использованием официального приложения

Приложение состыковывается с официальным приложением для Android или iOS, которое дает ему интерфейс для взаимодействия с API.
Собственно, без комментариев, способ совсем для других платформ и задач.

OAuth-авторизация

Необходимо открыть страницу авторизации в браузере, где пользователь, если он еще не авторизован на сайте, введет свой логин и пароль и разрешит доступ к его аккаунту.
Этот способ не понравился сразу по двум причинам: во-первых, токен таким образом необходимо получать каждые 24 часа, во-вторых, для его получения нужно каждый раз заходить на сервер, открывать lynx, авторизовываться и разрешать доступ. Не очень удобно. Есть, конечно, такой вариант, но всё-таки решено было поискать что-то другое.

Прямая авторизация

Передача логина и пароля непосредственно GET-запросом на определенный URL. Токен в итоге получается бессрочный и без привязки по IP.
Идеально подходящий, казалось бы, способ, если бы не одно «но»:

Внимание! Доступ к этому типу авторизации может быть получен только после предварительного согласования с администрацией ВКонтакте.

Для подачи заявки на получение доступа Вам необходимо обратиться в службу поддержки по адресу vk.com/support, указав ID Вашего приложения.

В настоящий момент эта возможность предоставляется только для платформ, не поддерживающих стандартную авторизацию. В заявке необходимо кратко описать функционал приложения.

Объяснять, что пишу просто каркас для любой своей будущей идеи, думаю, было бессмысленно, поэтому пришлось искать какие-то обходные пути.

Шаг 1. Обходные пути

Расстроившись тем фактом, что простым смертным получить доступ к прямой авторизации достаточно сложно, я уже чуть было не похоронил свою идею.
Однако, в один прекрасный день, во время чтения ленты новостей в официальном приложении VK на планшете под управлением Windows 8, в голову пришла мысль: а почему бы не взять access_token из этого приложения, он ведь бессрочный и без привязки к IP. Ну, или еще круче, перехватить app_id и app_secret во время авторизации официального приложения. Всё бы ничего, если бы не авторизация, конечно же, по https протоколу.
Загоревшись идеей кражи app_id и app_secret пришла в голову еще одна идея — декомпилировать клиент и попробовать поискать там.
Сказано — сделано: наверняка metro-приложение VK написано на C#, значит нужно найти C# декомпилятор. Первым в Google нашёлся JetBrains dotPeek. Хорошо, попробуем.
Далее неплохо было бы найти само приложение VK. После не очень долгого поиска было выяснено, что metro-приложения в Windows 8.1 хранятся в скрытой папке C:Program FilesWindowsApps.
Отлично! Пытаемся зайти и видим:

Авторизация в VK API с помощью логина и пароля

Мы, вроде бы, администраторы, тыкаем на «Продолжить»:

Авторизация в VK API с помощью логина и пароля

Весело, зайдём на вкладку «Безопасность», там нам предложат задать особые разрешения в «Дополнительно», зайдем в «Дополнительно»:

Авторизация в VK API с помощью логина и пароля

Поменяем владельца на себя, щелкнув на «Изменить», введя в диалоге свой email учетной записи microsoft, либо имя локального пользователя и щелнув на «Проверить имена». Сохраним всё это и теперь мы можем зайти в папку с нашими metro-приложениями. Ищем папку с VK, забираем оттуда VK.exe и скармливаем его нашему декомпилятору. Структура приложения видна для нас идеально, все названия функций и классов сохранились, недолгим гулянием по классам находим функцию Authorize, содержащую строку req, в которой есть два замечательных параметра:

Авторизация в VK API с помощью логина и пароля

Вуаля! client_id и client_secret наши.

Теперь мы можем авторизовываться, используя прямую авторизацию!
Попользовавшись данными client_id и client_secret мне все-таки стало интересно, что ответит поддержка на возможность их использования. После небольшой дискуссии был получен следующий ответ:

Авторизация в VK API с помощью логина и пароля

Интересная, конечно, позиция. Хорошо, расслабляемся и пользуемся.

Шаг 2. Собственно каркас

Желаемый каркас всё-таки был написан. В качестве языка программирования был выбран Python.
Состоит он из ядра и подключаемых плагинов. Ядро осуществляет авторизацию, работу с sqlite базой данных, импорт плагинов, опрос longpoll-сервера.
Плагины гибко взаимодействуют с ядром. О структуре плагина:
Чтобы ядро восприняло файл как плагин, в нем должна быть объявлена переменная:

Для того, чтобы добавить параметры в конфиг-файл, плагину необходимо объявить переменную config_parameters:

Чтобы создать таблицы в БД (если они еще не существуют), необходимо объявить переменную sql_tables:

Также реализован набор стандартных хендлеров (добавить новые хендлеры можно и в плагинах, так уже реализован хендлер текстовых команд).

  • before_auth_handlers — функции вызываются перед авторизацией, с единственным параметром — основным объектом, в котором можно получить доступ к VK API, хоть это и бесполезно перед авторизацией
  • after_auth_handlers — функции вызываются после авторизации, с тем же единственным параметром
  • exit_handlers — функции вызываются перед выходом, так же с единственным параметром
  • longpoll_handlers — функции вызываются при получении сообщения от longpoll-сервера, параметров здесь много, что они значат можно посмотреть в документации по VK API: (vkbuddy, code, msgid, flags, from_id, ts, subj, text, attachments)

На github можно ознакомиться с результатом, примерами плагинов и прочим, а также поучаствовать в разработке.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *