Соединение Websocket - нет действительных учетных данных - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь создать простое nodejs приложение, которое подключается к pathofexile.com/trade api.

Проблема с этим API заключается в том, что вы не можете использовать его, пока не вошли в систему на основном сайте (мой код работает в браузере, но я пытаюсь превратить его в настольное приложение). Существует несколько других приложений, которые решают эту проблему путем создания идентификатора сеанса cook ie с идентификатором сеанса пользователя (идентификатор, который можно получить, войдя на веб-сайт). К сожалению, документация по API очень ограничена, и я не смог найти никакой информации о том, как создать / использовать повара ie по мере необходимости.

Если я попытаюсь Чтобы подключиться к веб-сокету, не входя в систему на главном сайте pathofexile, я получаю следующую ошибку:

VM58:1 WebSocket connection to 'wss://www.pathofexile.com/api/trade/live/Metamorph/e602K4cL' failed: HTTP Authentication failed; no valid credentials available

Я пытался использовать sessionID для создания повара ie, подобного этому, используя встроенные функции в узле:

const cookie = { name: 'POESESSID', value: '3acbf42fb842aasdqwe1a0c355f',domain: 
'.pathofexile.com' }
  session.defaultSession.cookies.set(cookie)
.then(() => {
// success
  console.log("Cookie set (?)")
}, (error) => {
  console.error(error)
})

К сожалению, это не работает. Я очень незнаком с веб-сокетами (только начал играть с этим из нескольких дней go случайно), и еще менее знаком с тем, как веб-сокеты получают доступ и получают данные из файлов cookie.

Я пробовал другие модули, такие как npm cook ie -parser, npm request и npm needle безрезультатно.

Ближайший ответ, который я получил, - от одного года старый пост reddit, где пользователь использовал C#, чтобы заставить это работать.

Этот код используется в этом примере:

// Setup HTTP connection
HttpClientHandler handler = new HttpClientHandler();
CookieContainer cookieContainer = new CookieContainer();
cookieContainer.Add(composeUrl, new Cookie("POESESSID", sessionId));
handler.CookieContainer = cookieContainer;

HttpClient client = new HttpClient(handler);

Если кто-то может помочь пролить свет на это, я был бы очень благодарен. Я понимаю, что этот вопрос невероятно нишевый, и, возможно, я задаю его не на том форуме, но я действительно не знаю, куда обратиться.

Ценю любую помощь! // Alex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...