我已经成功使用POST和Content-Type为application/xml创建对象。同时,我也成功地使用Content-Type为application/x-www-form-urlencoded的空请求体进行查询,根据我指定的URI返回所有对象类型。我还可以在请求体中使用类似于PageNum=1&ResultsPerPage=1的内容,并将其合并到签名中,以获得有效的响应。
然而,无论如何格式化它,当我尝试使用筛选器(例如Filter=FAMILYNAME:EQUALS:Doe)时,我都只能得到401响应。我已经阅读了OAuth Core 1.0修订A规范,其中所有参数名称和值都使用[RFC3986]百分号编码进行转义。但是我觉得我可能漏掉了一个步骤或者格式化有误。在Intuit的论坛上搜索时,我看到了不一致的信息,不确定正确的格式到底是什么。
如果您能给予任何帮助,我将不胜感激。我已经苦苦挣扎了一个星期。
当尝试使用筛选器时,我收到的响应是: HTTP状态401 - message = Exception authenticating OAuth; errorCode = 003200; statusCode = 401
----更新----
当我尝试使用新的IPP开发人员工具 - IPP API Explorer筛选器时,我看到了相同的错误。 我正在使用IDS V2 QBO API Explorer工具。 我可以使用该工具检索所有帖子,响应显示了我的所有客户,但是当我尝试使用筛选器时,我会收到以下错误: 服务器错误 401-未经授权:由于凭据无效而拒绝访问。 您没有权限使用您提供的凭据查看此目录或页面。
有什么想法吗? 如果我从API Explorer工具中获得相同的错误,那么问题可能完全不同。
----最后更新----
我最终成功地使用了筛选器,并且我相信我已经找出了我的问题所在。 我一直怀疑能够像“PageNum = 1&ResultsPerPage = 1”这样进行分页查询,但无法获得类似于“Filter = FAMILYNAME:EQUALS:Doe”的内容。 我怀疑问题出在筛选器格式中的空格。 让我困惑的是,我无法使IDS V2 QBO API Explorer中的筛选器正常工作。 这让我怀疑还有其他问题。 我决定完全忽略API Explorer并集中精力解决为什么可以以一种方式使其工作,但不是另一种方式。
我相信我的问题归结为筛选器值在签名中的错误编码。 这就解释了我得到的401无效签名错误。 "Filter = Name:EQUALS:Doe"在规范化后变为"Filter = Name%20%3AEQUALS%20%3ADoe"。
百分号编码应该为“Filter%3DName%2520%253AEQUALS%2520%253ADoe”。
然而,无论如何格式化它,当我尝试使用筛选器(例如Filter=FAMILYNAME:EQUALS:Doe)时,我都只能得到401响应。我已经阅读了OAuth Core 1.0修订A规范,其中所有参数名称和值都使用[RFC3986]百分号编码进行转义。但是我觉得我可能漏掉了一个步骤或者格式化有误。在Intuit的论坛上搜索时,我看到了不一致的信息,不确定正确的格式到底是什么。
如果您能给予任何帮助,我将不胜感激。我已经苦苦挣扎了一个星期。
当尝试使用筛选器时,我收到的响应是: HTTP状态401 - message = Exception authenticating OAuth; errorCode = 003200; statusCode = 401
----更新----
当我尝试使用新的IPP开发人员工具 - IPP API Explorer筛选器时,我看到了相同的错误。 我正在使用IDS V2 QBO API Explorer工具。 我可以使用该工具检索所有帖子,响应显示了我的所有客户,但是当我尝试使用筛选器时,我会收到以下错误: 服务器错误 401-未经授权:由于凭据无效而拒绝访问。 您没有权限使用您提供的凭据查看此目录或页面。
有什么想法吗? 如果我从API Explorer工具中获得相同的错误,那么问题可能完全不同。
----最后更新----
我最终成功地使用了筛选器,并且我相信我已经找出了我的问题所在。 我一直怀疑能够像“PageNum = 1&ResultsPerPage = 1”这样进行分页查询,但无法获得类似于“Filter = FAMILYNAME:EQUALS:Doe”的内容。 我怀疑问题出在筛选器格式中的空格。 让我困惑的是,我无法使IDS V2 QBO API Explorer中的筛选器正常工作。 这让我怀疑还有其他问题。 我决定完全忽略API Explorer并集中精力解决为什么可以以一种方式使其工作,但不是另一种方式。
我相信我的问题归结为筛选器值在签名中的错误编码。 这就解释了我得到的401无效签名错误。 "Filter = Name:EQUALS:Doe"在规范化后变为"Filter = Name%20%3AEQUALS%20%3ADoe"。
百分号编码应该为“Filter%3DName%2520%253AEQUALS%2520%253ADoe”。
本质上,您需要对空格和冒号进行“双重”编码,但不要对等号进行编码。我尝试了许多编码组合,但认为我的错误在于我要么没有“双重”编码,要么当我双重编码时,包括了“=”符号。无论哪种方式都会破坏您的签名。感谢大家的建议。