Chavithra / degiro-connector

This is yet another library to access Degiro's API.
BSD 3-Clause "New" or "Revised" License
215 stars 47 forks source link

"A new "session_id" is required" on quotecast requests #149

Closed RedOrchid137 closed 3 months ago

RedOrchid137 commented 3 months ago

i can't seem to fetch real time data anymore from quotecast. i can do without it to some extent, but it's inconvenient at least. i just ran the example for a realtime one shot request:

import json
import logging

from degiro_connector.quotecast.models.ticker import TickerRequest
from degiro_connector.quotecast.tools.ticker_fetcher import TickerFetcher
from degiro_connector.quotecast.tools.ticker_to_df import TickerToDF

logging.basicConfig(level=logging.INFO)

with open("config.json") as config_file:
    config_dict = json.load(config_file)

user_token = config_dict.get("user_token")  # HERE GOES YOUR USER_TOKEN

logger = TickerFetcher.build_logger()
session = TickerFetcher.build_session()
ticker_to_df = TickerToDF()
ticker_request = TickerRequest(
    request_type="subscription",
    request_map={
        "AAPL.BATS,E": [
            "LastDate",
            "LastTime",
            "LastPrice",
            "LastVolume",
        ],
    },
)

session_id = TickerFetcher.get_session_id(user_token=user_token)

if session_id is None:
    raise TypeError("`session_id` is None")

TickerFetcher.subscribe(
    ticker_request=ticker_request,
    session_id=session_id,
    session=session,
    logger=logger,
)

ticker = TickerFetcher.fetch_ticker(
    session_id=session_id,
    session=session,
    logger=logger,
)

if ticker is None:
    raise TypeError("`ticker` is None")

df = ticker_to_df.parse(ticker=ticker)

print(df)

and this is the terminal output:

INFO:degiro_connector.quotecast.tools.ticker_fetcher:get_session_id:response_dict: {'sessionId': 'censored'} INFO:degiro_connector.quotecast.tools.ticker_fetcher:subscribe:data {"controlData":"a_req(AAPL.BATS,E.LastDate);a_req(AAPL.BATS,E.LastTime);a_req(AAPL.BATS,E.LastPrice) CRITICAL:degiro_connector.quotecast.tools.ticker_fetcher:A new "session_id" is required. CRITICAL:degiro_connector.quotecast.tools.ticker_fetcher:A new "session_id" is required. Traceback (most recent call last): File "/root/DegiroOrderingTask/python/test.py", line 49, in raise TypeError("ticker is None") TypeError: ticker is None