api - 使用 Postman 的 Quickbooks Online API 集合时出现身份验证错误

标签 api oauth-2.0 postman quickbooks-online

我已经完成了这里显示的步骤 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/

相关文章:

web-services - RESTful 触发服务器端事件的方式

asp.net-mvc-4 - Identityserver3 - HybridFlow 不返回配置文件范围

python - Python 中 API 的 OAuth2 授权

.net - 访问路径 'Google.Apis.Auth' 被拒绝

c# - 如何从 Postman 将 XML 传递到 ASP.Net Core 中的 Web API

javascript - 如何正确使用 postman 测试api响应中的对象总和

json - 无效的属性标识符字符 :\\. 路径 '',第 1 行, postman 中的位置 1

python - 使用 Python 的 Autodesk Inventor API

java - Oracle工作流API : adding and accessing file Attachments to a Human Task

使用 Swagger 的 Spring REST API 文档