当我使用以下查询时,我得到了一个很好的回复(只有5月的前5天,所以显然默认不是'这个财政年度迄今'为{{3}建议,但我离题了):
https://quickbooks.api.intuit.com/v3/company/0123456789/reports/CustomerSales
当我添加参数时,我得到一个oauth异常。例如:
https://quickbooks.api.intuit.com/v3/company/0123456789/reports/CustomerSales?start_date='2013-01-01'&end_date='2014-05-06'
给我这个:
{
"Fault": {
"type": "AUTHENTICATION",
"Error": [
{
"Message": "message=Exception authenticating OAuth; errorCode=003200; statusCode=401",
"code": "3200"
}
]
},
"requestId": "[redacted]",
"time": "[redacted]"
}
这给了我相同的结果:
https://quickbooks.api.intuit.com/v3/company/0123456789/reports/CustomerSales?date_macro='This Fiscal Year'
这样做:
https://quickbooks.api.intuit.com/v3/company/148305798/reports/CustomerSales?accounting_method='Accrual'
我想我错过了一些小事。我没有更改任何标题或任何其他请求详细信息...只是网址。
我试过没有日期和其他参数的单引号。
我在做什么?
答案 0 :(得分:3)
您是否将数据包含在右侧?在“基础”字符串中的URL中,您是否使用其他参数对其进行排序?
答案 1 :(得分:0)
我使用java devkit尝试过这个报告。 它对我来说很好。 PFB详细信息。
请求URI - https://quickbooks.api.intuit.com/v3/company/1092175540/reports/CustomerSales?accounting_method=Accrual&start_date=2014-01-01&requestid=61234ddb7e14ce2a5fe4e2f0318b31c&minorversion=1&
我的测试公司文件是空的。这就是为什么得到以下JSON响应。
{
"Header":{
"Time":"2014-05-06T20:42:08.783-07:00",
"ReportName":"CustomerSales",
"ReportBasis":"Accrual",
"StartPeriod":"2014-05-01",
"EndPeriod":"2014-05-06",
"SummarizeColumnsBy":"Total",
"Currency":"USD"
},
"Columns":{
"Column":[
{
"ColTitle":"",
"ColType":"Customer"
}
]
},
"Rows":{
"Row":[
{
"ColData":[
{
"value":"TOTAL"
}
],
"group":"GrandTotal"
}
]
}
}
JAVA 代码
void testCustomerSalesReport(Context context) {
Config.setProperty(Config.SERIALIZATION_RESPONSE_FORMAT, "json");
ReportService service = new ReportService(context);
service.setStart_date("2014-01-01");
service.setAccounting_method("Accrual");
Report report = null;
try {
report = service.executeReport(ReportName.CUSTOMERSALES.toString());
} catch (FMSException e) {
e.printStackTrace();
}
}
API文档参考 - https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/reports/customersales
希望它会有用。
由于