【发布时间】:2016-09-11 23:00:43
【问题描述】:
我正在尝试为 Python 实现 Quickbooks API,以根据交易生成发票,并将其发送到我的 Quickbooks 帐户。我正在使用this python 库来访问 API,该 API 当前版本为 0.5.1,可在 PyPI 上使用。我无法将我的应用程序连接到 Quickbooks Online。
我在 Quickbooks 上创建了一个开发者帐户,并且可以访问我的应用令牌、消费者密钥和消费者密码。图书馆 github 页面上的指南让我感到困惑,因为在“将您的应用程序连接到 Quickbooks Online”下,步骤 1 和 2 似乎相关但彼此独立;主要是因为客户端变量的重新初始化。
我是否应该有多个名为 client 的 Quickbook 对象,但在我的代码中重新初始化它?
我的代码如下所示:
def create_invoice():
consumer_key = 'MY-CONSUMER-KEY'
consumer_secret = 'MY-CONSUMER-SECRET'
client = QuickBooks(
sandbox=True,
consumer_key=consumer_key,
consumer_secret=consumer_secret,
callback_url='https://sandbox-quickbooks.api.intuit.com',
)
authorize_url = client.get_authorize_url()
request_token = client.request_token
request_token_secret = client.request_token_secret
client = QuickBooks(
sandbox=True,
consumer_key=consumer_key,
consumer_secret=consumer_secret
)
client.authorize_url = authorize_url
client.request_token = request_token
client.request_token_secret = request_token_secret
client.set_up_service()
client.get_access_tokens(request.vars.oauth_verifier)
realm_id = request.vars.realmId
access_token = client.access_token
access_token_secret = client.access_token_secret
client = QuickBooks(
sandbox=True,
consumer_key=consumer_key,
consumer_secret=consumer_secret,
access_token=access_token,
access_token_secret=access_token_secret,
company_id=realm_id
)
invoice = Invoice()
line = SalesItemLine()
line.LineNum = 1
line.Description = "description"
line.Amount = 100
line.SalesItemLineDetail = SalesItemLineDetail()
item = Item.all(max_results=1, qb=client)[0]
line.SalesItemLineDetail.ItemRef = item.to_ref()
invoice.Line.append(line)
customer = Customer.all(max_results=1, qb=client)[0]
invoice.CustomerRef = customer.to_ref()
invoice.CustomerMemo = CustomerMemo()
invoice.CustomerMemo.value = "Customer Memo"
invoice.save(qb=client)
使用此代码我得到错误:
KeyError: 'Decoder failed to handle oauth_token with data as returned by provider. A different decoder may be needed. Provider returned: oauth_problem=parameter_absent&oauth_parameters_absent=oauth_verifier'
因为我收到了错误,所以肯定有问题,但我不知道现在该去哪里。
【问题讨论】:
标签: python web2py quickbooks-online