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 @ravitandur last edited by

      @ravitandur It is same API, so should be working. only extra totp need to be sent.

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

        @Ashok what i meant is you can't get this secret by just username and password as Anil is asking. One has to go to enable otp page to get this code one time.

        punit 1 Reply Last reply Reply Quote 0
        • 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
                                            • First post
                                              Last post