Python QuickBooks API

问题描述 投票:0回答:2

我在使用 python-quickbooks 包时遇到问题,我尝试遵循文档:https://pypi.org/project/python-quickbooks/

这是我的代码:

from django.conf import settings
from intuitlib.client import AuthClient
from quickbooks import QuickBooks
from quickbooks.objects.account import Account

auth_client = AuthClient(
    client_id=settings.QUICKBOOKS_CLIENT_ID,
    client_secret=settings.QUICKBOOKS_CLIENT_SECRET,
    environment='sandbox',
    redirect_uri=settings.QUICKBOOKS_REDIRECT_URI,
)

client = QuickBooks(
    auth_client=auth_client,
    refresh_token=settings.QUICKBOOKS_REFRESH_TOKEN,
    company_id=settings.QUICKBOOKS_REALM_ID
)

account = Account()
account.from_json(
 {
  "AccountType": "Accounts Receivable",
  "Name": "MyJobs"
 }
)
account.save(qb=client)

但是,这会导致错误:

我在这里做错了什么?

python django quickbooks intuit-partner-platform
2个回答
0
投票

您必须在AuthClient中提供ACCESS_TOKEN。

为了获得访问令牌,您必须通过授权。您可以在此处查看有关授权流程的详细信息https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0-playground

这里还有一个存储库,其中包含如何使用 AuthClient 的示例:https://github.com/IntuitDeveloper/SampleOAuth2_UsingPythonClient

from intuitlib.client import AuthClient
from quickbooks.client import QuickBooks, Environments
auth_client = AuthClient(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL, Environments.SANDBOX, ACCESS_TOKEN)

qbo_client = QuickBooks(
    auth_client=auth_client,
    refresh_token=REFRESH_TOKEN,
    company_id=REALM_ID,
)

0
投票

您遇到的错误消息(ValidationException:缺少必需的参数,需要为 API 提供所需的值)表明保存帐户对象时未提供必需的参数。以下是一些帮助您调试和解决问题的建议:

检查必填字段:确保包含帐户对象的所有必填字段。 对于帐户,一些必填字段包括:名称、帐户类型

  1. 其他字段:根据帐户类型,可能还需要其他字段。例如,如果您正在使用应收帐款,则CurrencyRef 和AccountSubType 字段也可能是必需的。

  2. JSON 数据:考虑向 from_json 字典添加其他字段,以确保包含所有必需字段。

试试这个:

account_data = {
    "AccountType": "Accounts Receivable",
    "AccountSubType": "AccountsReceivable",
    "Name": "MyJobs",
    "CurrencyRef": {
        "value": "USD"  # Adjust this value as per your currency requirement
    }
}
account.from_json(account_data)
account.save(qb=client)
  1. 检查 API 文档:如果错误仍然存在,请参阅 Intuit API 文档以检查帐户创建的预期格式。
  2. 检查网络日志:确保与 QuickBooks API 的网络连接。有时,网络问题可能会导致 API 请求失败。

希望这能在 QuickBooks Python 包中发挥作用。如果您需要进一步帮助,请告诉我!

© www.soinside.com 2019 - 2024. All rights reserved.