我在使用 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)
我在这里做错了什么?
您必须在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,
)
您遇到的错误消息(ValidationException:缺少必需的参数,需要为 API 提供所需的值)表明保存帐户对象时未提供必需的参数。以下是一些帮助您调试和解决问题的建议:
检查必填字段:确保包含帐户对象的所有必填字段。 对于帐户,一些必填字段包括:名称、帐户类型
其他字段:根据帐户类型,可能还需要其他字段。例如,如果您正在使用应收帐款,则CurrencyRef 和AccountSubType 字段也可能是必需的。
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)
希望这能在 QuickBooks Python 包中发挥作用。如果您需要进一步帮助,请告诉我!