我想使用Accounting API(Java)使用我的QuickBooks Online帐户验证自己,以便我可以创建发票。
我已经在另一个应用中成功完成了这项工作。在这种情况下,应用程序有一个允许任何人登录其帐户的前端界面,因此我使用OAuth进行身份验证。
在这种情况下,我只是在我的服务器上有一些代码,它会在我的QuickBooks帐户中创建一个发票,但这段代码是私有的,没有与之关联的界面。它是由一些只有我控制的业务逻辑触发的。我已经创建了一个新的Intuit应用程序,它有自己的密钥用于此目的。
我是否仍需要通过OAuth流程对自己进行身份验证?如果我这样做,那似乎是不必要的。例如,要使用OAuth进行身份验证,我有以下内容:
OAuthAuthorizer oauth = new OAuthAuthorizer(
consumerKey, consumerSecret, accessToken, accessTokenSecret);
Context context = new Context(oauth, appToken, ServiceType.QBO, realmID);
DataService service = new DataService(context);
Context
构造函数的第一个参数应该是一个实现IAuthorizer
接口的对象,其中显然有3:IAMCookieAuthorizer
,OAuthAuthorizer
和{{1 }}。
TicketAuthorizer包含一个名为TicketAuthorizer
的票证,但这是什么,我可以使用它吗?我只是想从锁定的环境中进行简单的身份验证。
答案 0 :(得分:2)
通常,您不必再次完成OAuth流程。您可以使用您提到的其他应用中的应用令牌。但是,由于您在developer.intuit.com上创建了一个新应用程序,因此您需要从该应用程序生成一个令牌,这不是什么大问题。您可以从“测试连接到应用程序(OAuth)”下的developer.intuit网站获取令牌。
或者回过头使用其他应用领域的id /公司ID及其令牌。
获得令牌后,您可以在到期前30天以编程方式续订令牌,即180天。因此,请保存令牌创建日期,以便您可以确定续订窗口并在该窗口中自动续订令牌。
您可以浏览sample app以了解OAuth的工作原理。