Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获得;未经授权-401“;通过Intuit API访问quickBooks数据时.NET出错_C#_Api_Oauth_Intuit Partner Platform - Fatal编程技术网

C# 获得;未经授权-401“;通过Intuit API访问quickBooks数据时.NET出错

C# 获得;未经授权-401“;通过Intuit API访问quickBooks数据时.NET出错,c#,api,oauth,intuit-partner-platform,C#,Api,Oauth,Intuit Partner Platform,我正在开发一个.NET(C#)应用程序,它使用Intuit API与QuickBooks集成。我创建了两个Intuit帐户,例如A和B,使用不同的QuickBooks数据 我连接并授权Intuit帐户A,并在我的应用程序中创建一个客户机C1。然后我连接并授权B,并在我的应用程序中创建另一个客户机C2。到目前为止,一切正常。创建客户端时,我将oAuth信息(如访问令牌、访问令牌密钥、密钥等)保存在数据库中。当我想要编辑特定的客户端时,获取相应的信息 (还记得上次创建C2时,我的应用程序是经过授权的

我正在开发一个.NET(C#)应用程序,它使用Intuit API与QuickBooks集成。我创建了两个Intuit帐户,例如A和B,使用不同的QuickBooks数据

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

(还记得上次创建C2时,我的应用程序是经过授权的Intuit帐户B)

现在,此时,如果我转到与Intuit帐户A连接的客户机C1,并尝试获取quickbooks数据,而没有使用“连接到Intuit”按钮执行Intuit的默认连接和授权过程,它会给我“Unauthorized-401”错误,即使我提供了oAuth信息,如访问令牌、机密、,在客户端创建期间保存在本地数据库中的密钥等。当我启动API方法获取数据时,QuickBooks就会抛出错误

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


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

对于给定的apptoken、consumerKey和ConsumerCret,只有特定QBO帐户的一个用户具有有效的OAuth凭据。 如果该特定公司的第二个用户通过C2QB周期(OAuth握手)生成新的accessToken和accessSecret,则之前的令牌将失效

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


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