code: def request_token(self, authorization_url, store_token=True,
                        token_path=None, **kwargs):
          
  
          if self.session is None:
              raise RuntimeError("Fist call 'get_authorization_url' to "
                                 "generate a valid oauth object")
  
          # TODO: remove token_path in future versions
          if token_path is not None:
              warnings.warn('"token_path" param will be removed in future versions.'
                            ' Use a TokenBackend instead', DeprecationWarning)
          _, client_secret = self.auth
  
          # Allow token scope to not match requested scope.
          # (Other auth libraries allow this, but Requests-OAuthlib
          # raises exception on scope mismatch by default.)
          os.environ['OAUTHLIB_RELAX_TOKEN_SCOPE'] = '1'
          os.environ['OAUTHLIB_IGNORE_SCOPE_CHANGE'] = '1'
  
          try:
              self.token_backend.token = Token(self.session.fetch_token(
                  token_url=self._oauth2_token_url,
                  authorization_response=authorization_url,
                  include_client_id=True,
                  client_secret=client_secret))
          except Exception as e:
              log.error('Unable to fetch auth token. Error: {}'.format(str(e)))
              return False
  
          if store_token:
              self.token_backend.save_token()
          return True
docs: Authenticates for the specified url and gets the token, save the
          token for future based if requested
  
          :param str authorization_url: url given by the authorization flow
          :param bool store_token: whether or not to store the token,
           so u don't have to keep opening the auth link and
           authenticating every time
          :param Path token_path: full path to where the token should be saved to
          :param kwargs: allow to pass unused params in conjunction with Connection
          :return: Success/Failure
          :rtype: bool