我已经完成了这里显示的步骤 https://developer.intuit.com/docs/0100_quickbooks_online/0100_essentials/000300_your_first_request/first_request_with_postman#/Configuring_the_Postman_Authorization_header-1500使用 Quickbook 的 Postman API 集合。
在 Postman 中,我成功地获得了一个新的访问 token 。我还将 {{baseurl}} 更新为 "sandbox-quickbooks.api.intuit.com",并更新了 {{companyid}} strong>(又名“RealmId”)是适当的值,如开发者网站的“管理沙箱”页面所示(即 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 在线帮助区域中的响应提供了提示。
对于那些可能觉得这有用的人,我的解决方案是请求一个新的访问 token (在 Postman 中单击“获取新访问 token ”)并更新“范围”部分以包含“openid”,这样空格分隔的列表读取: com.intuit.quickbooks.accounting openid 个人资料电子邮件电话地址
使用这个具有更新范围的新 token 让我得到了想要的结果。
最佳答案
我遇到了同样的问题,但我的解决方式不同。我的问题是,在请求的 token 中,“将 token 添加到”的默认值是 URL,但 API 似乎要求 token 位于授权 header 中。将其更改为“Header”就可以做到这一点。
对于“Customer-ReadById”端点,唯一需要的范围是 com.intuit.quickbooks.accounting。我的猜测是您在反复试验中将其更改为 Header。
关于api - 使用 Postman 的 Quickbooks Online API 集合时出现身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45721273/