maksim-zakharov / alor-api

Node.js SDK for Alor Open API
https://www.npmjs.com/package/alor-api
2 stars 1 forks source link

Request message should contain 'token' field! #2

Open ddmitr opened 5 months ago

ddmitr commented 5 months ago

Пример кода:

import { AlorApi, Endpoint, WssEndpoint, Timeframe, Exchange } from 'alor-api';

const token = '...HIDDEN....'
const api = new AlorApi({ token: token, endpoint: Endpoint.PROD, wssEndpoint: WssEndpoint.PROD });

const unsubscribe = await api.subscriptions.candles({
  code: 'SBER',
  exchange: Exchange.MOEX,
  from: (new Date('2024-03-20')).getTime(),
  tf: Timeframe.Min5,
  delayed: false,
}, candle => console.log(candle));

// отписаться
  await unsubscribe();

// обработка дополнительных событий
api.subscriptions.on('error', error => console.log('stream error', error));
api.subscriptions.on('close', error => console.log('stream closed, reason:', error));

В ответ получаю:

node:internal/process/esm_loader:46
      internalBinding('errors').triggerUncaughtException(
                                ^
{
  httpCode: 400,
  requestGuid: 'f3419715-639c-4b95-99ea-785910950211',
  message: "Request message should contain 'token' field!"
}

Node.js v20.5.1

Пробовал также запихнуть token в реквест обьект - но результат тот же.

maksim-zakharov commented 1 month ago

Привет!

Смотри

1) не нужно впихивать в request token - это так не работает 2) Если ты используешь http запросы - там при 401 accessToken автоматически рефрешится по твоему токену и вопросов нет 3) В вебсокетах это делать геморно, поэтому там нужно перед запуском вебсокетов дернуть api.refreshToken который получает accessToken и записывает в инстанс api

Сорри что долго не отвечал, не увидел Issue)

Напиши удалось ли решить проблему