NameError:全局名称' qbObject'没有定义

时间:2015-06-15 19:51:49

标签: python flask quickbooks quickbooks-online

我在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(),返回"无"错误与"属性错误:'无类型'对象没有属性"。

1 个答案:

答案 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