Закрыть

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);

  })

})

Теперь Вам необходимо познакомиться с клиентом поближе, чтобы понять, что он может.