我需要一些帮助来实现一个访问Quickbooks API的python应用程序。我已经成功地编写了几个使用api的应用程序,但是一旦我们进入OAuth世界,我就有点不知所措了。在
无论如何,我在这里找到了quickbooks python包装: https://github.com/troolee/quickbooks-python
但是,没有任何工作代码的例子说明如何正确实现。我想一个更有经验的python程序员可以在没有任何指令的情况下解决这个问题,但是我似乎缺少了一些基本知识。在
如果我能把它连接起来,我也许能让它在那里工作。。。在
似乎github上的文档跳转了一下,对于一个更有经验的程序员来说,可能是非常有意义的。但我只是不明白。。。在
from quickbooks import *
consumerKey = "fromApiConsole"
consumerSecret = "fromApiConsole"
callbackUrl = "https://quickbooks.api.intuit.com/v3"
qbObject = QuickBooks(
consumer_key = consumerKey,
consumer_secret = consumerSecret,
callback_url = callbackUrl
)
authorize_url = qbObject.get_authorize_url() # will create a service, and further set up the qbObject.
oauth_token = request.GET['oauth_token']
oauth_verifier = request.GET['oauth_verifier']
realm_id = request.GET['realmId']
session = qbObject.get_access_tokens(oauth_verifier)
# say you want access to the reports
reportType = "ProfitAndLoss"
url = "https://quickbooks.api.intuit.com/v3/company/asdfasdfas/"
url += "reports/%s" % reportType
r = session.request( #This is just a Rauth request
"POST",
url,
header_auth = True,
realm = realm_id,
params={"format":"json"}
)
qb = QuickBooks(
consumer_key = consumerKey,
consumer_secret = consumerSecret,
access_token = qbtoken.access_token, # the stored token
access_token_secret = qbtoken.access_token_secret, # the stored secret
company_id = qbtoken.realm_id #the stored realm_id
)
qbText = str(qb.query_objects(business_object, params, query_tail))
print qbText
我确信我:
这里的最终目标实际上只是连接并从Quickbooks Online获取损益表。如果我能做到这一点,我相信我可以从API中得到我所需要的其余部分。我真的不需要更改任何内容,我只是希望将报表中的数据包含到一些仪表板中。在
*更新*
好吧,我想好了怎么把它连接起来,但我不知道怎样才能得到报告。在
答案是这样的,在之前的API页面上:
^{pr2}$还在努力得到基本报告。。。在
但是我没有和oauth分享过很多关于Python的经验早一点。如果我不能回答你的附加问题。在
注意:下面的代码还调用V2 QBO api。请不要使用该零件,因为它已被弃用。
看看有没有帮助-
导入Python
从rauth导入OAuth1Session,OAuth1Service 进口xml.etree.ElementTree作为ET
导入xmltodict
类QuickBooks(): “”“一个围绕Python Rauth模块的包装类,用于Quickbooks the API”“”
好吧,下面是如何让这个工作。我的重点是报告,下面是如何使用Python从Quickbooks Online API获取报告:
1)转到https://github.com/finoptimal-dev/quickbooks-python并下载代码
2)确保安装了rauth。如果您使用的是AWS/EC2,只需:
2.bookspy添加以下bookspy文件:
^{pr2}$4)在Quickbooks站点上设置沙盒应用程序:https://developer.intuit.com/v2/ui#/app/startcreate(如果您还没有开发人员帐户,则必须创建一个开发人员帐户)
5)安装完成后,您可以转到应用程序的“密钥”选项卡并获取应用程序令牌、OAuth消费者密钥和OAuth消费者机密。在
6)去Intuit开发者游乐场https://appcenter.intuit.com/Playground/OAuth/IA,使用步骤5中的信息获取访问令牌和访问令牌机密。在
7)将步骤3中的变量更改为正确的值。对于QB_REALM_ID,这是公司ID。您可以通过登录https://developer.intuit.com/v2/ui#/sandbox并查找公司ID在沙盒中获取
7)在上述步骤3的代码下方添加以下代码
我使用上面的日期b/c Quickbooks Sandbox公司在2015年没有收入/支出数据,所以你必须选择2014年的日期。在
8)重要提示:要将Quickbooks沙盒用于报告目的,您需要更改get_report()函数,以使用基本的\u url_v3,而不是硬编码为生产url。在
在get_report()函数中查找如下所示的行:
把它改成:
9)现在您可以在顶部将base_url_v3更改为:
10)现在您应该能够运行:
您应该会看到来自Quickbooks Sandbox公司的一堆JSON数据。在
11)您可以探索一下,在这里测试合适的url:https://developer.intuit.com/apiexplorer?apiname=V3QBO#Reports
12)报告引用在这里:https://developer.intuit.com/docs/0100_accounting/0400_references/reports,它显示了可以使用哪些参数。要在资源管理器中测试参数,请在“请求正文”部分输入参数。在
我为此挣扎了一段时间,终于弄明白了。希望这对其他人有帮助。在
相关问题 更多 >
编程相关推荐