获得“未经授权- 401“在.net中通过Intuit API访问quickBooks数据时出现错误

本文关键字:quickBooks 访问 Intuit 数据 API 错误 未经授权 授权 获得 net | 更新日期: 2023-09-27 18:11:59

我正在使用Intuit API开发一个与QuickBooks集成的。net (c#)应用程序。我创建了两个Intuit账户,分别是A和B,使用不同的QuickBooks数据。

我连接并授权Intuit帐户A,并在我的应用程序中创建一个客户端C1。然后,我连接并授权B,并在我的应用程序中创建另一个客户机C2。直到现在一切都很好。当我创建客户端时,我保存了oAuth信息,如访问令牌,访问令牌秘密,密钥等。当我想编辑一个特定的客户端时,获取相应的信息。

(记住我的应用程序是在创建C2时最后一次授权Intuit帐户B的)

现在,此时,如果我去与Intuit帐户A连接的客户端C1,并试图获取quickbooks数据,而没有使用"connect to Intuit"按钮进行Intuit的默认连接和授权过程,它会给我"Unauthorized-401"错误,即使我提供了oAuth信息,如访问令牌,秘密,密钥等,这些信息在客户端创建时保存在本地数据库中。当我触发API方法获取数据时,QuickBooks抛出错误。

我不希望我的应用程序手动连接和授权Intuit帐户过程,每次它试图从不同的Intuit帐户获取数据,因为有一个自动的后台工作,每24小时后同步每个客户端的QuickBooks数据。无法手动为该作业授权相同的内容。

我在这里错过了什么?我该怎么办?我需要购买任何合作伙伴许可证或其他东西吗?

获得“未经授权- 401“在.net中通过Intuit API访问quickBooks数据时出现错误

对于给定的应用令牌、consumerKey和consumerSecret,特定QBO帐户中只有一个用户拥有有效的OAuth凭据。如果该特定公司的第二个用户经过C2QB周期(OAuth握手)来生成新的accessToken和accessSecret,那么之前的令牌将失效。

当最终用户访问你的应用程序时,不需要每次都经历OAuth周期。当最终用户第一次生成OAuth令牌时,您可以将他的SSO id与DB中的有效OAuth令牌关联起来(使用C2QB按钮)。从下次开始,只需让他通过intuit的SSO流程,根据他的SSO标识符获取OAuth凭证,并允许他使用以前保存的凭证访问他的数据。

谢谢

对于公司文件的主管理员,除非您的应用程序将Connect to Quickbooks(C2QB)用于同一领域,否则令牌不能无效。只有这样才能使令牌无效。请检查您是否将令牌保存在一些临时存储中,而没有删除/清理它,这可能导致令牌过期。由于两个QBO帐户/域A和B以及管理员(C1和C2)不相关,因此没有理由为B生成oauth令牌会导致A的令牌过期。