EasyVK Редактировано: 28.08.2020 в 04:16
В этом разделе подробно описана авторизация, а также история создания EasyVK
Авторизация (инициализация)
В EasyVK, когда вы импторируете себе модуль командой require, возвращается функция, выполнив которую вам будет необходимо иницализировать сессию EasyVK.
Попроще говоря, это просто запуск алгоритма авторизации вас по токену / паролю пользователя / группы.
Выглядит это примерно так
const easyvk = require('easyvk')
easyvk({
access_token: '{ВАШ_ТОКЕН}'
}).then(vk => {
}).catch(console.error) ~/Project/index.js
Именно тут вы даете понять, как авторизовать вас, чтобы вы дальше делали какие-то действия. Возвращается объект Promise, передается в resolve функцию объект EasyVK (именнуемый переменной vk, для удобства).
Обращаясь к методам этого объекта, будет гарантированно, что все запроы будут выполняться по тому токену, который вы поставили в нициализации функции. Если вы не ставили токен, лишь выбрали авторизацию по логину и паролю, то токен EasyVK получит самостоятельно с максимальными правами для комфортной работы.
Ниже вы можете посмотреть какие параметры можно передать в иницализацию функции. Напомню, что функция принимает единственный аргумент - объект инициализации, настройки вашей сессии, по факту.
//Стандартный вид инициализации
//По такому шаблону происходт все взаимодействия
const easyvk = require('easyvk')
//Сессия EasyVK, настройки
const sessionParams = {
access_token: 'token',
api_v: '5.73'
}
//Функция, в которую передается объект EasyVK
const vkInit = (vk) => {
// пример, vk.call()
}
easyvk(sessionParams)
.then(vkInit)
.catch(console.error) ~/Project/index.js
Параметры иницизалиации
| Параметр | Описание | По умолчанию |
|---|---|---|
| api_v |
Версия ВКонтакте API, которую вы хотите использовать для всех запросов.
Не рекомендую менять этот параметр ниже версии 5, так как сама библиотека писалась именно под нее, в версии 4 JSON ответы могут отличаться от версии 5.
|
5.73 |
| acсess_token | Ваш токен доступа, параметр необходим только, если вы не ввели логин и пароль. Токен может быть как группы, так и пользователя. Библиотека самостоятельно определит какой именно это токен, если он будет не правильным, выведется ошибка с ответом сервера ВКонтатке.
|
- |
| username | Ваш логин для аккаунта, используется в связке с параметром password |
- |
| password | Ваш пароль для аккаунта, используется в связке с параметром username
|
- |
| session_file | Путь к файлу сессии, в который будет сохраняться вся сессия.
Тем временем в самом файле
|
~/Project/ node_modules/ easyvk/lib/ .vksession |
| save_session | Сохранять сессию в файл? | true |
| reauth | Игнорировать данные файла сессии и авторизоваться с новыми данными? | false |
| clean_session | Отчистить файл сессии после авторизации? | false |
| captcha_sid | ID капчи, которую вы получаете из ошибки. Необходимо передать этот параметр после получения ошибки. Если вы не ловите ошибки капчи через captchaHandler, то тогда необходимо переинициализировать EasyVK с новыми данными, чтобы EasyVK мог выполнять запрос дальше. То есть. Если вы получили ошибку капчи, вы можете ее ловить через хендлер, но если по каким-то причинам это не получилось, вы можете передать из ошибки данные в этот параметр, EasyVK будет встраивать их во все запросы в ходе работы. |
- |
| captcha_key | Текст с капчи, которую вы получили в ошибке.
Ваши дейтсвия: 1. Инициализировать первый раз 2. Получить ошибку капчи, вывести ее куда-нибудь в лог, чтобы посмотреть саму капчу и решить ее. 3. Открыть картинку капчи, посмотреть текст 4. Запустить EasyVK с заданными параметрами captcha_sid и captcha_key. Или используйте captchaHandler для решения капчи самостоятельно и автоматически. |
- |
| code | Ваш код для двухфакторной авторизации. Если вы используете двухфакторную авторизацию для своего аккаунта, неободимо вписать в этот параметр код для авторизации. | code |
| captchaHandlder | Функция для ловли ошибки капчи. Вы можете решать капчу любым удобным вам способом. Пример смотрите на странице Капча |
- |
После того, как вы авторизовались, вызывается функция resolve, в нее передается объект EasyVK, с помощью которого вы можете обращаться к ВКонтакте API. Подробнее читайте на странице Методы
Ловля ошибок
В EasyVK пока что не сильно развит режим Debug'а, но то, что уже есть сейчас, несомненно, работает так, как надо.
И так, все основные дейтствия, которые производятся в объекте EasyVK происсходят на основе Promis'ов. Следовательно, можно ловить ошибки, но не везде.
Я рекомендую использовать событие unhandledRejection, чтобы ловить все ошибки без исключений и знать, что происходит в том или ином месте кода.
process.on('unhandledRejection', console.error)
Но в основном все сводится к ловле ошибок на уровне промисов
easyvk({})
.then(vk => {})
.catch(console.error)
process.on('unhandledRejection', console.error)
История
ОСТОРОЖНО ! Многобукаф !!
EasyVK создавался просто так. EasyVK - это мое хобби, можно так сказать, но которым я не сильно увлечен по разным причинам. Модуль создавался, потому что я не видел на тот момент, когда понял, что нужно что-то делать, я не увидел модулей, которые бы были похоже на то, что из себя представляет сейчас EasyVK. Модуль не сильно полезный, на самом деле. Но кому-то он может сильно помочь. Сначала я создавал его для себя, как это обычно бывает со всеми проектами, а потом решил, а почему бы и не опубликовать его? Так и появился EasyVK.
С первой версии EasyVK обладал малым количеством возможностей, было много багов и прочего. Во второй версии я решил переписать все с нуля, ведь то, что было, нельзя было считать расширяемым проектом. И даже во второй верии не вышло то, что я хотел. Появилась версия 0.3, в которой появились утилиты, много дополнений. Я реализовал почти все возможности. Но все же, знал, что это не все.
После версии 0.3, я начал писать версию 0.4, думал, что это ведь еще не релиз 1.0, чего там, ведь много чего еще можно сделать. Но к концу уже понял, что дело катит на релиз 1.0 версии. Вот и вся история проекта. Сейчас проект уже плывет по течению, я лишь помогаю людям, у которых возникают какие либо проблемы с использованием. Но на данный момент не собираюсь развивать его дальше. Только по мере поступления новых задач, вроде "ВКонтакте запустили масштабную Бот Платформу с доступным API".
FAQ
Данный раздел будет пополняться по мере поступления вопросов.