Navigation

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

    Guide to secure your SmartAPI Account with two factor authentication

    General Discussion
    0
    104
    1955
    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.
    • punit
      punit @aj_Brk last edited by

      @aj_Brk correct

      1 Reply Last reply Reply Quote 0
      • A
        aj_Brk @mudit236 last edited by

        @babitakundu i guess you have to manually download the repo and run python setup.py install. I dont see the code yet updated on pip

        punit 1 Reply Last reply Reply Quote 0
        • punit
          punit @aj_Brk last edited by

          @aj_Brk Admins are adding in pip. If you want to try meanwhile, edit directly in local or download from github.

          1 Reply Last reply Reply Quote 0
          • M
            Meenavenkit @babitakundu last edited by

            @babitakundu just replace the generatesession def with new one. it worked for me. You have to manually edit in source file

            1 Reply Last reply Reply Quote 0
            • M
              milind017 @aj_Brk last edited by

              @aj_Brk code generated from "pyotp" not working for me, getting below output with your code. Any suggestion. If I am using the code from DUO app I am able to login successfully
              data = obj.generateSession(clientCode, password, totp.now())
              print(data)

              Shell output:
              pyotp: 586380
              {'status': False, 'message': 'Invalid totp', 'errorcode': 'AB1050', 'data': None}

              punit 1 Reply Last reply Reply Quote 0
              • punit
                punit @milind017 last edited by

                @milind017 this need to do like this.

                totp = pyotp.TOTP(s='secret key in qr uri after qr generation'

                And then the generate session.

                M 1 Reply Last reply Reply Quote 0
                • M
                  milind017 @punit last edited by

                  @Ashok Yes did the same. Still getting the same
                  obj = SmartConnect(api_key=historyApiKey)

                  totp = pyotp.TOTP(s='secret key in qr uri after qr generation')
                  print("pyotp",totp.now())

                  attempts = 5
                  while attempts > 0:
                  attempts = attempts-1
                  data = obj.generateSession(clientCode, password, totp.now())
                  print(data)
                  if data['status']:
                  break
                  time.sleep(2)

                  A 1 Reply Last reply Reply Quote 0
                  • S
                    SSumit @gautamnaik1994 last edited by

                    @gautamnaik1994 https://smartapi.angelbroking.com/topic/2383/automate-totp-login-using-python-module-pyotp

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      milind017 @SSumit last edited by

                      @SSumit
                      I have tried with shared link code, still getting the same
                      d83195c5-6672-4ec1-868a-4ee367253b3a-image.png

                      Shell Output:
                      with TOTP: 932310
                      With parse_uri: 932310
                      {'status': False, 'message': 'Invalid totp', 'errorcode': 'AB1050', 'data': None}

                      A punit S 3 Replies Last reply Reply Quote 0
                      • A
                        aj_Brk @milind017 last edited by

                        @milind017 I see that you have put condition in if data['status'] , is it going in retry at all ?

                        1 Reply Last reply Reply Quote 1
                        • A
                          aj_Brk @milind017 last edited by

                          @milind017 try with this condition

                          if not data['message'].contains('Invalid totp'):
                          break

                          M 1 Reply Last reply Reply Quote 0
                          • punit
                            punit @milind017 last edited by

                            @milind017 @aj_Brk why retry, it passed almost always on first time. Anyway. Not sure why parse_uri is needed.. also just pass totp as a string

                            A M 2 Replies Last reply Reply Quote 1
                            • G
                              gokul last edited by

                              TypeError: SmartConnect.generateSession() takes 3 positional arguments but 4 were given

                              A G 2 Replies Last reply Reply Quote 1
                              • A
                                aj_Brk @punit last edited by

                                @Ashok Actually you are right it works most of the time , but for those rare instances where by the time your request went and it expired on server side , i had added retry. It happened to me once perhaps due to slow code execution or internet.

                                1 Reply Last reply Reply Quote 0
                                • A
                                  aj_Brk @gokul last edited by

                                  @gokul try the latest library - pip install smartapi-python --upgrade . It appears the new version is live now

                                  1 Reply Last reply Reply Quote 0
                                  • A
                                    aj_Brk @mudit236 last edited by

                                    @mudit236 @babitakundu It appears it is updated now. Please try - pip install smartapi-python --upgrade

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      milind017 @punit last edited by

                                      @Ashok Yes I have already tried with totp as string still its same
                                      Yes retry not needed by still to be sure.
                                      I have added both code to check if I am getting the same totp, which I am getting but still not able to get the success
                                      Is pyotp is working for you?

                                      A D punit 3 Replies Last reply Reply Quote 0
                                      • A
                                        admin @milind017 last edited by

                                        @milind017 @Ashok @gokul @Meenavenkit

                                        Totp changes have been deployed in the latest python release 1.3.0
                                        Please use the following command to upgrade to the latest python release
                                        pip install smartapi-python --upgrade

                                        S 1 Reply Last reply Reply Quote 0
                                        • M
                                          milind017 @aj_Brk last edited by

                                          @aj_Brk Yes retrying working correctly, but I am not able to get the session token
                                          Can you please share reference code

                                          1 Reply Last reply Reply Quote 1
                                          • S
                                            SSumit @milind017 last edited by

                                            @milind017 check value of angleOneURI, it should be like - otpauth://totp/<client id>?secret=<secrets>&issuer=angelone.in&algorithm=SHA1&digits=6&period=30

                                            and there is no need for a while loop

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