繁体   English   中英

通过Intuit API访问quickBooks数据时,.NET中出现“ Unauthorized-401”错误

[英]Getting “Unauthorized-401” Error in .NET while accessing quickBooks data through Intuit API

我正在使用Intuit API开发具有QuickBooks集成的.NET(C#)应用程序。 我用不同的QuickBooks数据创建了2个Intuit帐户(分别为A和B)。

我连接并授权Intuit帐户A,并在我的应用程序中创建一个客户C1。 然后,我连接并授权B并在我的应用程序中创建另一个客户端C2。 至此,一切正常。 创建客户端时,我将oAuth信息(例如访问令牌,访问令牌密钥,密钥等)保存在数据库中。 并在我要编辑特定客户端时获取相应的信息。

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

现在,此刻,如果我转到与Intuit帐户A连接的客户端C1,并尝试获取快速簿数据,而没有使用“ connect to intuit”按钮进行默认的intuit连接和授权过程,它将显示“未经授权” -401”错误,即使我提供的oAuth信息(如访问令牌,秘密,密钥等)也已在创建客户端时保存在本地数据库中。 我启动API方法来获取数据后,QuickBooks就会引发错误。

我不希望我的应用程序每次尝试从另一个Intuit帐户获取数据时都手动连接并授权Intuit帐户流程,因为有一个自动后台作业,该作业每24小时就会同步每个客户的QuickBooks数据。 不能手动授权该作业。

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

对于给定的apptoken,consumererKey和consumerSecret,只有特定QBO帐户的一个用户才能拥有有效的OAuth凭据。 如果该特定公司的第二个用户经历了C2QB周期(OAuth握手)以生成新的accessToken和accessSecret,则先前的令牌将失效。

最终用户每次访问您的应用时,都无需经历OAuth周期。 您可以在最终用户生成OAuth令牌时(使用C2QB button)第一次将最终用户的SSO ID与DB中的有效OAuth令牌相关联。 从下一次开始,onword便使他经历了intuit的SSO流程,根据他的SSO标识符获取OAuth凭据,并允许他使用先前保存的凭据访问其数据。

谢谢

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM