Закрыть
npm

HTTP Клиент Редактировано: 28.08.2020 в 04:51

За более подробной информацией об HTTP Клиенте обращайтесь на страницу HTTP

После того, как авторизация по HTTP клиенту произошла, Вы получаете объект HTTPClient, его описание идет ниже

client.request()

Метод делает подписанный пользовательской сессией запрос на любой внутренний адрес ВКонтакте. С помощью него Вы можете получать любую страницу ВКонтакте такой, как буд-то Вы зашли во ВКонтакте через браузер с выключенным JavaScript. Таким же способом Вы можете получать любую другую информацию, которую не можете получить с помощью официального API ВКонтакте. Делать запросы туда, куда нельзя делать через API.

Аргументы метода

  • file * (<string>)

    Файл, к которому надо обратиться. Это может быть любой файл, идущий после доменного имени. Например, al_im.php

    // https://vk.com/al_im.php [POST]
    client.request('al_im.php').then(console.log)
  • form * (<Object>)

    Объект (форма, данные), которые нужно отправить по этому запросу

    client.request('al_im.php', {
      act: 'get_emoji_list',
      al: 1,
      sizes: 64,
      sticker_packs_to_load: ''
    }).then(console.log)
  • post (<boolean>) true

    Нужно ли отправлять запрос по методу POST

  • isMobile (<boolean>) false

    Если Вы выставите это значение как true, то запрос отправится на поддомен m.vk.com

  • options (<Object>) {}

    Опции, которые будут отправлены в функцию fetch

Метод возвращает объект <Promise>, в resolve функцию при успешном выполнении запроса вернется ответ сервера.
Выглядеть такой ответ может как угодно, но на момент написания этих строк (01.03.2020) ВКонтакте в основном на все POST запросы отправляет почти JSON. Почти, потому что это не совсем JSON, в начеле к нему добавляется непонятный префикс <!--, но Easy VK написан так, что, если не получится получить JSON, то он вернет полный ответ сервера независимо от того, что там пришло

client.request('al_img.php', {
  act: "a_get_dialogs",
  al: 1,
  gid: 0,
  im_v: 3,
  start_message_id: 0,
  tab: "all"
}).then(res => console.log(res.payload))

client.fullRequest()

Является копией метода request, но вместо JSON, возвращает полный объект response, который приходит от node-fetch

let response = await client.fullRequest('https://oauth.vk.com/authorize', {
  client_id: 6121396, // ID приложения
  scope: 215985366, // Полный доступ
  response_type: 'token'
})
  
let token = response.url.match(/access_token=([^&]+)/g)
console.log(await response.text())