我在FLASK上使用QUICKBOOK INTUIT WITH PYTHON整合QUickbook Oauth
def QBConfig():
qbObject = QuickBooks(
consumer_key='qyprdgW*********1vZ5yEnwgNQsO',
consumer_secret='csnHfPP***WDnA*********CIjzfb3MAb4GI',
callback_url='http://0.0.0.0:10080/QBGetAccesstoken',
)
return qbObject
@app.route('/intuitOauth')
def intuitOauth():
qbObject = QBConfig()
authorize_url = qbObject.get_authorize_url()
# will create a service, and further set up the qbObject.
return redirect(authorize_url)
@app.route('/QBGetAccesstoken')
def QBGetAccesstoken():
oauth_verifier = request.args.get('oauth_verifier')
session = qbObject.get_access_tokens(oauth_verifier)
这里 intuitauth 函数初始化qbObject,它是包含第三方应用程序密钥配置的对象。
问题是:如何全局访问qbObject?
当intuitauth获得成功时,回调网址称为( QBGetAccesstoken )。 以下是我收到错误的部分" qbobject未定义。
这些函数不是在课堂上写的。当回调函数调用时, qbobject对象可能会被破坏,任何人都可以猜出确切的问题或解决方案,在调用回调函数时如何传递原始对象(回调调用时页面刷新)。
我甚至尝试将对象存储在像session['qbobj'] = qbObject
这样的会话中,但遗憾的是没有用。
我还尝试重新初始化QBGetAccesstoken函数中的对象,如qbObject = QBConfig()
,返回"无"错误与"属性错误:'无类型'对象没有属性"。
答案 0 :(得分:1)
我在全局定义变量时犯了一个愚蠢的错误。它适用于以下代码。
qbObject = QuickBooks(
consumer_key='qyprdgW*********1vZ5yEnwgNQsO',
consumer_secret='csnHfPP***WDnA*********CIjzfb3MAb4GI',
callback_url='http://0.0.0.0:10080/QBGetAccesstoken',
)
@app.route('/intuitOauth')
def intuitOauth():
authorize_url = qbObject.get_authorize_url()
# will create a service, and further set up the qbObject.
return redirect(authorize_url)
@app.route('/QBGetAccesstoken')
def QBGetAccesstoken():
oauth_verifier = request.args.get('oauth_verifier')
session = qbObject.get_access_tokens(oauth_verifier)
在定义期间,从功能中删除qbObject