我已完成此处显示的步骤https://developer.intuit.com/docs/0100_quickbooks_online/0100_essentials/000300_your_first_request/first_request_with_postman#/Configuring_the_Postman_Authorization_header-1500,以便为Postman使用Quickbook的API集合。
在Postman中,我成功地获得了一个新的访问令牌。我还将 {{baseurl}} 更新为" sandbox-quickbooks.api.intuit.com" ,并更新了 {{如果"管理沙箱"开发者网站的页面(即https://developer.intuit.com/v2/ui#/sandbox)。
但是当我点击"发送"在" Customer-ReadById"查询(或集合中的任何其他查询),我收到以下身份验证错误:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2017-08-16T11:52:00.611-07:00">
<Fault type="AuthenticationFault">
<Error code="100">
<Message>General Authentication Error</Message>
<Detail>AuthenticationErrorGeneral: SRV-110-Authentication Failure , statusCode: 401</Detail>
</Error>
</Fault>
</IntuitResponse>
我的下一步是验证我可以使用开发人员网站上的OAuth 2.0 Playground工具查询我的沙箱,我确实可以这样做。
我的问题是:为什么我在Postman中收到此身份验证错误?我错过了一步吗?或者Quickbooks Online API中有哪些更改尚未记录?
编辑:经过大量的试验和错误后,我设法解决了自己的问题,并根据Quickbooks Online帮助区域中的响应提示。
对于那些可能觉得有用的人,我的解决方案是申请一个新的访问令牌(点击&#34;获取新访问令牌&#34;在邮递员中)并更新&#34;范围&#34;部分包括&#34; openid&#34;这样空格分隔列表如下: com.intuit.quickbooks.accounting openid个人资料电子邮件地址
使用具有更新范围的新令牌可以让我获得所需的结果。
答案 0 :(得分:0)
我有同样的问题,但我的解决方法不同。我的问题是,在请求的令牌中,默认为&#34;将令牌添加到&#34;是URL,但似乎API要求令牌位于Authorization标头中。将此更改为&#34;标题&#34;做到了。
对于&#34; Customer-ReadById&#34;端点,唯一需要的范围是com.intuit.quickbooks.accounting。我的猜测是你在试错中将它改为Header。