如何使用QuickBooks Online进行简单身份验证而不使用OAuth?

时间:2015-04-24 10:42:48

标签: java authorization quickbooks quickbooks-online

我想使用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:IAMCookieAuthorizerOAuthAuthorizer和{{1 }}。

TicketAuthorizer包含一个名为TicketAuthorizer的票证,但这是什么,我可以使用它吗?我只是想从锁定的环境中进行简单的身份验证。

1 个答案:

答案 0 :(得分:2)

通常,您不必再次完成OAuth流程。您可以使用您提到的其他应用中的应用令牌。但是,由于您在developer.intuit.com上创建了一个新应用程序,因此您需要从该应用程序生成一个令牌,这不是什么大问题。您可以从“测试连接到应用程序(OAuth)”下的developer.intuit网站获取令牌。

或者回过头使用其他应用领域的id /公司ID及其令牌。

获得令牌后,您可以在到期前30天以编程方式续订令牌,即180天。因此,请保存令牌创建日期,以便您可以确定续订窗口并在该窗口中自动续订令牌。

您可以浏览sample app以了解OAuth的工作原理。