刷新令牌QB

2024-09-29 21:39:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码可以从QuickBooks上传数据。但是我仍然需要每天去更换刷新令牌

我希望这个令牌是自动刷新的

我试着在“例外”中这样做,但它永远不会带着代币回来

谢谢你的帮助

我在python3中的代码:

import webbrowser
import requests

# ---- use for scrapping -----
from intuitlib.client import AuthClient # intuit library
from quickbooks import QuickBooks # python-quickbooks package
from quickbooks.objects.customer import Customer
import quickbooks.objects.invoice as Invoices
from quickbooks.objects.company_info import CompanyInfo
import requests
from QBO import QBOConnector
import codecs
import os
import parameters


# constants
REDIRECT_URI = 'https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl' # not using the redirection at the moment
ENV = QBOConnector.PROD_environment
REFRESH_TOKEN = QBOConnector.PROD_TOKEN # Refresh token needs to be added here (which will be generated from https://developer.intuit.com/app/developer/playground)
COMPANY_ID = QBOConnector.PROD_COMPANY_ID #id of the company that we use in the example

# auth credentials to connect to the QBO account
auth_client = AuthClient(
        client_id = QBOConnector.PROD_CLIENT_ID,
        client_secret = QBOConnector.PROD_CLIENT_SECRET,
        environment = ENV,
        redirect_uri = REDIRECT_URI,
    )

directoryPath = parameters.directoryPath

# creating the client object to access the QBO account - if not able to connect, make 3 tries dans then stop
tries = 3
for i in range(tries):
    try :
        client = QuickBooks(
                auth_client= auth_client,
                refresh_token= REFRESH_TOKEN,
                company_id= COMPANY_ID,
                )
    except:
        # auth_client.refresh()
        REFRESH_TOKEN = auth_client.refresh_token
        print(REFRESH_TOKEN)
        excepurl = 'https://appcenter.intuit.com/app/connect/oauth2/companyselection?client_id={0}&scope=com.intuit.quickbooks.accounting&redirect_uri=https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl&response_type=code&state=PlaygroundAuth'.format(QBOConnector.PROD_CLIENT_ID)
        webbrowser.open_new(excepurl)
        if i < tries - 1: # i is zero indexed
            continue
        else:
            raise
        break

# -------   for test purpose
test = True
if test == False:
    # retrieving all customers for the above client object
    customers = Customer.all(qb=client)

    # printing all customer names on the console/shell
    for customer in customers:
        print (customer)

Tags: thetofromimportcomclienttokenauth

热门问题