def refresh(): tokens = [] filename = "core/apis/quickBooks/.token" f = open(filename, 'r') for line in f: tokens.append(line.rstrip()) f.close() auth_client = AuthClient( settings.QB_CLIENT_ID, settings.QB_CLIENT_SECRET, settings.QB_REDIRECT_URI, settings.QB_ENVIRONMENT, access_token=tokens[0], refresh_token=tokens[1], ) try: auth_client.refresh() except AuthClientError as e: print(e.status_code) print(e.intuit_tid) print("----------") print([ auth_client.access_token == tokens[0], auth_client.refresh_token == tokens[1] ]) print("----------") f = open(filename, 'w') f.write("{0}\n".format(auth_client.access_token)) f.write("{0}\n".format(auth_client.refresh_token)) f.close() return
def get_quickbooks_client(): env = environ.Env() auth_client = AuthClient( client_id=env("QUICKBOOKS_CLIENT"), client_secret=env("QUICKBOOKS_SECRET"), environment="production", redirect_uri="http://localhost:8000/callback", ) token_path = str(settings.ROOT_DIR / "secrets" / "QUICKBOOKS_REFRESH_TOKEN") if os.path.exists(token_path): with open(token_path, "r") as refresh_token_file: refresh_token = refresh_token_file.read() else: print("NEED TO GENERATE REFRESH TOKEN!") return auth_client.refresh(refresh_token=refresh_token) with open(token_path, "w") as refresh_token_file: refresh_token_file.write(auth_client.refresh_token) client = QuickBooks( auth_client=auth_client, refresh_token=auth_client.refresh_token, company_id="9130348538823906", minorversion=62, ) return client
def get_access_from_refresh(request): refresh_token = request.session.get('refresh_token', None) if refresh_token is None: return self.refresh() else: try: auth_client = AuthClient( settings.CLIENT_ID, settings.CLIENT_SECRET, settings.REDIRECT_URI, settings.ENVIRONMENT, access_token=request.session.get('access_token', None), refresh_token=refresh_token, ) current_refresh_token = request.session.get('refresh_token') print('CURRENT REFRESH TOKEN IS: ', current_refresh_token) auth_client.refresh(refresh_token=current_refresh_token) print(auth_client) except AuthClientError as e: print(e.status_code) print(e.intuit_tid) return HttpResponse(json.dumps({ 'access_token': auth_client.access_token, 'refresh_token': auth_client.refresh_token }), content_type='application/json')
def get_refreshed_tokens(refresh_token, client_id, client_secret, sandbox=False): enviroment = 'sandbox' if sandbox else 'production' auth_client = AuthClient(client_id, client_secret, '', enviroment) auth_client.refresh(refresh_token=refresh_token) return RefreshTokenResponse( auth_client.refresh_token, auth_client.x_refresh_token_expires_in, auth_client.access_token, auth_client.expires_in, )
def refresh(request): auth_client = AuthClient( settings.CLIENT_ID, settings.CLIENT_SECRET, settings.REDIRECT_URI, settings.ENVIRONMENT, access_token=request.session.get('access_token', None), refresh_token=request.session.get('refresh_token', None), ) try: auth_client.refresh() except AuthClientError as e: print(e.status_code) print(e.intuit_tid) return HttpResponse('New refresh_token: {0}'.format(auth_client.refresh_token))
def _create_client(self): auth_client = AuthClient( client_id=CLIENT_ID, client_secret=CLIENT_SECRET, environment=ENVIRONMENT, redirect_uri= 'https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl', ) # Refresh token endpoint auth_client.refresh(refresh_token=REFRESH_TOKEN) client = QuickBooks(auth_client=auth_client, refresh_token=REFRESH_TOKEN, company_id=COMPANY_ID, minorversion=54) return client
def get_qbo_client(user, company): db = boto3.resource('dynamodb') table = db.Table(TABLE) token = get_user(user, company)['qbo_refresh_token'] auth_client = AuthClient(CLIENT_KEY, CLIENT_SECRET, REDIRECT_URI, QBO_ENV) auth_client.refresh(refresh_token=token) client = QuickBooks(auth_client=auth_client, refresh_token=auth_client.refresh_token, environment=QBO_ENV, company_id=company) response = table.update_item( Key={ 'company': company, 'user': user }, UpdateExpression="set #attr = :token", ExpressionAttributeValues={':token': auth_client.refresh_token}, ExpressionAttributeNames={'#attr': 'qbo_refresh_token'}) return client
def refresh_session(): s = json.loads(get_secret()) auth_client = AuthClient( client_id=s["client_id"], client_secret=s["client_secret"], redirect_uri=s["redirect_url"], access_token=s["access_token"], refresh_token=s["refresh_token"], environment="production", ) # caution! invalid requests return {"error":"invalid_grant"} quietly auth_client.refresh() s["access_token"] = auth_client.access_token s["refresh_token"] = auth_client.refresh_token put_secret(json.dumps(s)) QuickBooks.enable_global() QuickBooks(auth_client=auth_client, company_id="1401432085") return auth_client
def _get_auth_client(self): '''Returns an OAuth2.0 Client for interacting with Quickbooks Reporting API. ''' auth_client = AuthClient( self.config.get("client_id"), self.config.get("client_secret"), self.config.get("redirect_uri"), self.config.get("environment"), refresh_token=self.config.get("refresh_token"), realm_id=self.config.get("realm_id")) # Refresh to get new Access Token. auth_client.refresh() if auth_client.refresh_token == self.config.get("refresh_token"): LOGGER.info( "Config file Refresh Token and Refresh Token received from Refresh Token API are identical." ) else: LOGGER.info( "Config file Refresh Token and Refresh Token received from Refresh Token API has drifted." ) LOGGER.info( "Overwriting Config file with new Refresh Token values..") self.config["refresh_token"] = auth_client.refresh_token self.config[ "refresh_token_expires_at"] = self._generate_token_expiration( auth_client.x_refresh_token_expires_in) with open(self.args.config_path, 'r+') as f: json.dump(self.config, f, indent=2) # Check Refresh Token Expiry. self._check_token_expiry(auth_client) return auth_client
def refresh_token(company): c = company redirect_uri = "https://rc.royaltyclearinghouse.com/home/call-back" tokens_file = 'tokens.cfg' token_config = ConfigParser() token_config.read(tokens_file) realm_id = token_config[c]['realm_id'] auth_client = AuthClient( client_id=token_config[c]['client_id'], client_secret=token_config[c]['client_secret'], redirect_uri=redirect_uri, environment=token_config[c] ['environment'], # “sandbox” or “production” ) refresh_tok = token_config[c]['refresh_token'] try: auth_client.refresh(refresh_token=refresh_tok) rtoken = auth_client.refresh_token stoken = auth_client.access_token token_config.set(c, 'refresh_token', rtoken) token_config.set(c, 'access_token', stoken) with open(tokens_file, 'w+') as tokenfile: token_config.write(tokenfile) print(rtoken) print(stoken) except AuthClientError as e: print(e.status_code) print(e.content) print(e.intuit_tid)
def refresh_token(token): auth_client = AuthClient(CLIENT_KEY, CLIENT_SECRET, REDIRECT_URI, QBO_ENV) auth_client.refresh(refresh_token=token) return auth_client.refresh_token
# redirect_uri = "https://sandbox-quickbooks.api.intuit.com/v3" # REFRESH_TOKEN = "AB11584276657dGSTYbj1MlF5tUqCz2arzhTUZcDHzW01W0QD9" # REFRESH_TOKEN = 'AB1158436670497omUaXlA28cHBaiENiW4K3AdFFtEAzSHJEsm' REFRESH_TOKEN = 'AB1158436670497omUaXlA28cHBaiENiW4K3AdFFtEAzSHJEasdfasdf' realm_id = "4620816365025351930" scopes = [ Scopes.ACCOUNTING, ] auth_client = AuthClient( client_id, client_secret, redirect_uri, environment ) try: auth_client.refresh(refresh_token=REFRESH_TOKEN) except: print("Get saved token") # auth_client.refresh(refresh_token=REFRESH_TOKEN) # # ACCESS_TOKEN = auth_client.access_token # print(auth_client.access_token) # # print(auth_client.auth_endpoint) # print(auth_client.refresh_token) # # auth_client.au # client = QuickBooks( # auth_client=auth_client, # refresh_token= REFRESH_TOKEN , # access_token=auth_client.access_token,
'%Y-%m-%d %H:%M:%S.%f') current_dt_time = datetime.datetime.now() elapsed_dt_time = current_dt_time - start_dt_time hr, min, sec = convert_timedelta(elapsed_dt_time) print("hr=", hr) print('min=', min) print('access_token=', p.access_token) print('refresh_token=', p.refresh_token) print(' ') print(' ***************') print(' ') auth_client = AuthClient(p.client_id, p.client_secret, p.redirect_uri, p.environment, refresh_token=p.refresh_token, access_token=p.access_token) scopes = [ Scopes.ACCOUNTING, ] url = auth_client.get_authorization_url(scopes) r_token = auth_client.refresh(refresh_token=p.refresh_token) print("refresh=", auth_client.refresh_token) #auth_client.get_bearer_token(auth_code, realm_id=realm_id) access_token = auth_client.access_token url = '{0}/v3/company/{1}/companyinfo/{1}'.format(p.base_url, p.realm_id) auth_header = 'Bearer {0}'.format(access_token)