【问题标题】:How to do simple authentication with QuickBooks Online without using OAuth?如何在不使用 OAuth 的情况下使用 QuickBooks Online 进行简单身份验证?
【发布时间】:2015-04-24 10:42:47
【问题描述】:

我想使用会计 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个:IAMCookieAuthorizerOAuthAuthorizerTicketAuthorizer

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

【问题讨论】:

    标签: java authorization quickbooks quickbooks-online


    【解决方案1】:

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

    或者只是返回使用其他应用领域 ID/公司 ID 及其令牌。

    拥有令牌后,您可以在到期前 30 天(即 180 天)以编程方式对其进行续订。因此,请保存令牌创建日期,以便您确定更新窗口并在该窗口中自动更新令牌。

    您可以通过sample app 了解 OAuth 的工作原理。

    【讨论】:

    • app token 是什么意思?在应用仪表板中,开发和生产选项卡都有自己的 App TokenConsumer KeyConsumer Secret 值,但我在 OAuth 登录时缺少 access tokenaccess token secret 值.我为我的新应用程序(开发)使用“测试连接到应用程序 (OAuth)”选项成功连接到我的 QB 帐户,但我在任何地方都看不到任何访问令牌或访问令牌密码。
    • 我已经成功地从 intuit oauth 游乐场创建了访问令牌和访问密码,所以我会尽可能地继续更新它们。但是我仍然无法让我的请求正常工作,因为我不知道我的应用程序的 Realm ID 是什么!旧的应用仪表板用于显示领域 ID,但我在新仪表板的任何地方都找不到它。
    • 我设法让它工作,但只能通过使用我的旧应用程序,因为我在我保留的一些日志中遇到了该应用程序的领域 ID。将 oauth 令牌用于应用程序的开发版本是否有任何问题。我的意思是,180 天到期和 30 天续订规则仍然适用吗?
    • 是的,开发令牌是 180 天。领域 ID 的新名称是公司 ID。在 OAuth 回调参数中仍然使用 Realm Id。
    • 据您所知,是否可以从应用仪表板中找到公司 ID?还是其他地方?我在 Playground 测试期间检查了 HTTP 请求/响应中的标头和参数,虽然 RealmID 参数在那里,但它没有任何价值。看起来很傻,因为领域/公司 ID 是一个完全静态的值,但我无法在仪表板的任何地方查看它(再也看不到了!)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 2016-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多