好的,这就是如何实现这一点。我专注于报告,因此您可以通过以下方式使用 Python 从 Quickbooks Online API 获取报告:
1) 前往https://github.com/finoptimal-dev/quickbooks-python https://github.com/finoptimal-dev/quickbooks-python并下载代码
2)确保你已经安装了rauth。如果您使用的是 AWS/EC2,只需:
sudo yum install rauth
3)编辑quickbooks2.py文件并将以下内容添加到END:
qb = QuickBooks(consumer_key = QB_OAUTH_CONSUMER_KEY,
consumer_secret = QB_OAUTH_CONSUMER_SECRET,
access_token = QB_ACCESS_TOKEN,
access_token_secret = QB_ACCESS_TOKEN_SECRET,
company_id = QB_REALM_ID
)
4) 在 Quickbooks 站点上设置沙盒应用程序:https://developer.intuit.com/v2/ui#/app/startcreate https://developer.intuit.com/v2/ui#/app/startcreate(如果您还没有开发者帐户,则必须创建一个开发者帐户)
5) 设置完成后,您可以转到应用程序的“密钥”选项卡并获取应用程序令牌、OAuth 消费者密钥和 OAuth 消费者密钥。
6) 前往 Intuit 开发者游乐场:https://appcenter.intuit.com/Playground/OAuth/IA https://appcenter.intuit.com/Playground/OAuth/IA并使用步骤 #5 中的信息获取访问令牌和访问令牌密钥。
7) 将步骤 #3 中的变量更改为正确的值。对于 QB_REALM_ID,这是公司 ID。您可以通过登录在沙箱中获取此内容https://developer.intuit.com/v2/ui#/sandbox https://developer.intuit.com/v2/ui#/sandbox并寻找公司 ID。
7) 在上面步骤 #3 的代码下方添加以下代码
print qb.get_report('ProfitAndLoss','summarize_column_by=Month&start_date=2014-01-01&end_date=2014-12-31')
我使用上述日期是因为 Quickbooks Sandbox 公司没有 2015 年的收入/支出数据,因此您必须选择 2014 年的日期。
8) 重要提示:要与 Quickbooks Sandbox 一起用于报告目的,您需要更改 get_report() 函数以使用 base_url_v3,而不是硬编码到生产 URL。
在 get_report() 函数中查找如下所示的行:
url = "https://quickbooks.api.intuit.com/v3/company/%s/" % \
并将其更改为:
url = self.base_url_v3 + "/company/%s/" % \
9)现在你可以将顶部的base_url_v3一直更改为:
base_url_v3 = "https://sandbox-quickbooks.api.intuit.com/v3"
10) 现在你应该能够运行:
python quickbooks2.py
您应该会看到来自 Quickbooks Sandbox 公司的一堆 JSON 数据。
11) 您可以在此处进行一些探索以测试适当的 URL:https://developer.intuit.com/apiexplorer?apiname=V3QBO#Reports https://developer.intuit.com/apiexplorer?apiname=V3QBO#Reports
12)报告参考在这里:https://developer.intuit.com/docs/0100_accounting/0400_references/reports https://developer.intuit.com/docs/0100_accounting/0400_references/reports这会显示您可以使用哪些参数。要测试资源管理器中的参数,请在“请求正文”部分中输入它们。
我为此苦苦挣扎了一段时间,终于想通了。希望这对其他人有帮助。