Сессия Редактировано: 28.08.2020 в 04:16

После того, как EasyVK вас авторизует, создается объект сессии - это просто объект, у которого есть свои методы и т.д. И он зависит безусовно, от файла сессии, если вы указали что необходимо сохранять сессию в файл. Вы можете изменить сессию и управлять ею через ее же методы.

ВНИМАНИЕ ! Объект сессии существует в EasyVK с версии 1.2, в версиях ниже был только метод vk.saveSession(), используйте последние релизы EasyVK.


session.save()

Данный метод сохраняет сессию по указанному файлу, если файл не был указан, то выкинится ошибка. Все просто.

vk.session.cache = []

vk.session.cache[0] = [/* Photos...*/]

vk.session.save().then(() => {

  console.log('Saved!')

})

session.setPath()

Данный метод устанавливает путь к файлу сессии, если файла не существует, он автоматически будет создан.

const path = require('path')
const sessionPath = path.join(__dirname, '.current-session')


vk.session.setPath(sessionPath)
.then(({vk: EasyVK}) => {

  console.log(EasyVK.session.path) //__dirname + .current-session

})

Конечно, вы можете изменять path, просто устанавливая его новым свойством, но я рекомендую делать это именно через данный метод.

Сам метод же может пригодиться в тех случаях, когда вам необходимо менять сессии прям "на ходу"... Может быть, у вас на одном процессе несколько ботов (не рекомендуется).

session.clear()

Данный метод отчищает файл сессии, вашу сессию, как объект, и потом синхронизирует с файловой системой, то есть сохранет данные.

Все просто!

vk.session.data = []
vk.session.clear(() => {
  console.log(vk.session) // {data: undefined}
})

Данный метод "удаляет" не только те данные, которые вы добавили, но и те, что были изначально. Таким образом вы можете отчищать файл сессии.

Сами же свойства в объекте сессии не удаляются, так как метод delete работает очень медленно, не хотелось бы застопорить весь процесс только одним методом.