Navigation

    SmartAPI Forum
    • Register
    • Login
    • Search
    • Categories
    • Popular
    • Groups
    • FAQs
    • API Docs

    generateSession issue with new TOPO API : Couldn't parse the JSON response received from the server: b

    Test
    0
    3
    44
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      daleep_angel last edited by

      after upgraded the smartapi and providing the TOPO details, getting below error while generating the session.

      data = obj.generateSession(username,pwd,topo)
      Please provide the solution

      JSONDecodeError Traceback (most recent call last)
      C:\ProgramData\Anaconda3\lib\site-packages\smartapi\smartConnect.py in _request(self, route, method, parameters)
      187 try:
      --> 188 data = json.loads(r.content.decode("utf8"))
      189

      C:\ProgramData\Anaconda3\lib\json_init_.py in loads(s, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
      345 parse_constant is None and object_pairs_hook is None and not kw):
      --> 346 return _default_decoder.decode(s)
      347 if cls is None:

      C:\ProgramData\Anaconda3\lib\json\decoder.py in decode(self, s, _w)
      336 """
      --> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
      338 end = _w(s, end).end()

      C:\ProgramData\Anaconda3\lib\json\decoder.py in raw_decode(self, s, idx)
      354 except StopIteration as err:
      --> 355 raise JSONDecodeError("Expecting value", s, err.value) from None
      356 return obj, end

      JSONDecodeError: Expecting value: line 1 column 1 (char 0)

      During handling of the above exception, another exception occurred:

      DataException Traceback (most recent call last)
      ~\AppData\Local\Temp/ipykernel_4956/2840288024.py in <module>
      ----> 1 data = obj.generateSession(username,pwd,topo)

      C:\ProgramData\Anaconda3\lib\site-packages\smartapi\smartConnect.py in generateSession(self, clientCode, password, totp)
      226
      227 params={"clientcode":clientCode,"password":password,"totp":totp}
      --> 228 loginResultObject=self._postRequest("api.login",params)
      229
      230 if loginResultObject['status']==True:

      C:\ProgramData\Anaconda3\lib\site-packages\smartapi\smartConnect.py in _postRequest(self, route, params)
      218 def _postRequest(self, route, params=None):
      219 """Alias for sending a POST request."""
      --> 220 return self._request(route, "POST", params)
      221 def _getRequest(self, route, params=None):
      222 """Alias for sending a GET request."""

      C:\ProgramData\Anaconda3\lib\site-packages\smartapi\smartConnect.py in _request(self, route, method, parameters)
      189
      190 except ValueError:
      --> 191 raise ex.DataException("Couldn't parse the JSON response received from the server: {content}".format(
      192 content=r.content))
      193

      DataException: Couldn't parse the JSON response received from the server: b''

      1 Reply Last reply Reply Quote 0
      • D
        daleep_angel last edited by

        Got solution as below.

        Install pyopt library : pip install pyotp

        import pyotp

        use the topo detail with pyotp as below:

        topo = Trading_api_key_details.topo
        topt = pyotp.TOTP(topo)
        topt = topt.now()
        data = obj.generateSession(username,pwd,topt)
        refreshToken= data['data']['refreshToken']
        print(data)

        S 1 Reply Last reply Reply Quote 0
        • S
          SCCT1015 @daleep_angel last edited by

          @daleep_angel said in generateSession issue with new TOPO API : Couldn't parse the JSON response received from the server: b:

          Got solution as below.

          Install pyopt library : pip install pyotp

          import pyotp

          use the topo detail with pyotp as below:

          topo = Trading_api_key_details.topo
          topt = pyotp.TOTP(topo)
          topt = topt.now()
          data = obj.generateSession(username,pwd,topt)
          refreshToken= data['data']['refreshToken']
          print(data)

          1 Reply Last reply Reply Quote 0
          • First post
            Last post