我的代码可以从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)
目前没有回答
相关问题 更多 >
编程相关推荐