HTTP Редактировано: 28.08.2020 в 04:15
HTTP Клиент существует в Easy VK со второй версии. Он нужен для тех случаев, когда нужно- сделать что-то такое, что не поволет официальное API ВКонтакте. Так, например, на его основе я написал Audio API. Это не значит, что я говорю "разрабы, Вы совсем зажрались", я предлагаю альтернативу, и предполагаю, что Вы не будете злоупотреблять этими возможностями.
HTTP Клиент работает по принципу HTTP сессии, если Вы хотя бы частично знакомы с алгоритмом работы HTTP, то знаете, что сессия там живет, пока о Вас можно собрать хоть какую-то информацию*, например, кукисы. Когда Вы авторизуетесь в обычном браузере во Вконтакте, Вы создаете сессию, и информация об этой сессии хранится в куках браузера. Чтобы сессия "поддерживалась", браузер отправляет кукисы каждый раз, когда делает запрос, вместе с самим запросом. Таким образом, сервер ВКонтакте всегда будет знать, что сделать с этим запросом, и какой пользователь его выполнил
HTTP Клиент работает именно по принципу браузера, он авторизует Вас как бы "через браузер"*, и возвращает Вам объект для работы в этой авторизованной сессии. Так как авторизация происходит по протоколу HTTP, многие моменты могут перестать работать со временем, ведь ВКонтакте часто меняют свои внутренние и внешние алгоритмы, а я просто слоупок. Так, например, сейчас в HTTP клиенте не поддерживается двухфакторная авторизация, а также проверка на капчу при авторизации. Но скоро это поправится. Кроме того, так как формат ответа ВКонтакте может изменяться, ныне работающий Audio API может перестать работать (но я сделаю максимум, чтобы этого не произошло)
В общем HTTP Клиент - это мощная, крутая особенность Easy VK, но его поддержка - это тяжелое дело и требует своевременного отклика на любые изменения ВКонтакте. Вы можете его использовать, а можете написать свой, на основе библиотеки request
, это не сложно. Но будьте бдительны к ошибкам.
Использовать HTTP Клиент нужно так:
easyvk().then(vk => {
vk.http.loginByForm(({client}) => {
// Первый шаг - авторизация в http клиенте, всегда
client.someMethod(); // Пример работы с HTTP клиентом
})
})
http.loginByForm()
Для корректной работы HTTP авторизации, необходимо ВСЕГДА передавать в параметры авторизаии easyvk логин и пароль пользователя, так как по access_token
логин и пароль не получить из сессии, а сам логин и пароль не сохраняются в сессию в целях безопасности данных
Это самый основной метод http клиента, он запускает авторизацию во ВКонтакте, в браузере (Chrome), по Вашему текущему IP адресу. Метод возвращает объект <Promise>, в случае корректной авторизации, resolve
функция получит следующий объект
{
client: HTTPClient,
vk: EasyVK
}
Для проверки данных логина и пароля, HTTP клиент проведет сразу две авторизации (первая, по официальному API, а вторая, по HTTP), так что не переживайте, если в сеансах ВКонтакте будет на одну строку больше
easyvk({
username: "логин_пользователя",
password: "пароль"
}).then(vk => {
vk.http.loginByForm().then(({client: HTTPClient}) => {
console.log(HTTPClient);
})
})
Теперь Вам необходимо познакомиться с клиентом поближе, чтобы понять, что он может.