Django:从Quickbooks Online提取数据并将其存储到MySQL数据库中

时间:2018-12-04 07:52:24

标签: python django quickbooks-online

我最近有一个Django项目,要求我从Quickbooks Online提取数据,然后将其存储在MySQL数据库中以备后用。

根据我在https://github.com/sidecars/python-quickbooks中找到的教程,我能够使用获取访问权限和刷新令牌

quickbooks-cli -p 8000 <Client ID> <Client Secret> 2

我想问几个问题:

  1. 在Intuit开发人员的“密钥”部分中,将http://localhost:8000设置为我的重定向URI之一有什么含义?
  2. 我应该如何使用访问和刷新令牌?我认为我需要从https://github.com/sidecars/python-quickbooks中的“访问API”部分继续,但是我不知道该放置文档中提到的代码的文件(我过去不接触API,因此请多多指教)
  3. 我注意到访问和刷新令牌到期之前还有一段时间,这是否意味着我必须不时更改一次?

先谢谢了。

1 个答案:

答案 0 :(得分:1)

  

在Intuit开发人员的“密钥”部分中,将http://localhost:8000设置为我的重定向URI之一有什么含义?

您将无法使用该套装(Intuit不会让您使用)。但是对于开发来说,这很好。

最终,您应该将其替换为生产URL。

  

我应该如何使用访问和刷新令牌?

这是您链接到他们的文档所说的:

  • “存储access_token和refresh_token供以后使用。”

此外,您还需要使用访问令牌才能通过API访问数据。从文档中:

session_manager = Oauth2SessionManager(
    client_id=realm_id,
    client_secret=CLIENT_SECRET,
    access_token=AUTH2_ACCESS_TOKEN,
)

from quickbooks import QuickBooks

 client = QuickBooks(
     sandbox=True,
     session_manager=session_manager,
     company_id=realm_id
 )

from quickbooks.objects.customer import Customer
customers = Customer.all(qb=client)

这在此处的文档中显示:https://github.com/sidecars/python-quickbooks#accessing-the-api

  

我注意到访问令牌和刷新令牌还有一段持续时间,这是否意味着我必须每隔一段时间更改一次?

您必须刷新它们,是的:

session_manager = Oauth2SessionManager(
       client_id=QUICKBOOKS_CLIENT_ID,
       client_secret=QUICKBOOKS_CLIENT_SECRET,
       base_url=callback_url,
   )

session_manager.refresh_access_token()

来自此处的文档:https://github.com/sidecars/python-quickbooks#refreshing-access-token