QuickBooks 在线编程访问

QuickBooks Online programmatic access

任何人都可以告诉我如何以编程方式访问我的 QuickBooks 在线帐户,特别是从使用 QBO Java 库的 Java 应用程序。

例如:

OAuthAuthorizer oauth = new OAuthAuthorizer(
        consumerKey, consumerSecret, 
        accessToken, accessTokenSecret);

Context context = new Context(
        oauth, appToken, ServiceType.QBO, realmID);

DataService qbService = new DataService(context);

我并不是要创建其他人可以用来登录其 QB 帐户的应用程序。我只想以编程方式访问我自己的帐户。我真的必须为此创建 oAuth 令牌和密码(并不断更新令牌)吗?如果是这样,我该怎么做?

当我尝试为我的帐户使用 oAuth 游乐场(生成 oAuth 令牌)时,出现的弹出对话框询问我 "Which company would you like to connect to?" 但唯一的选择是沙盒(虚拟)公司帐户,而不是我的真实帐户帐号。

几年前我能够做到这一点(例如,游乐场会列出要连接的正确帐户),但现在我不知道如何让它工作。

自从我上次使用 API 以来,Intuit 似乎发生了一些变化。上一次,我使用我的应用程序开发密钥,oAuth 过程将使生产 QuickBooks 帐户可用于连接。显然,现在开发密钥将只显示您设置的沙箱帐户(或自动为您设置的沙箱帐户,在我的例子中)。

因此,您只需确保在 oAuth 流程中使用生产密钥,即可将生产帐户视为一个选项。

至于无需跳过 oAuth 程序就可以简单地以编程方式访问我的帐户,据我所知,答案是你必须这样做,包括在你的任何期限后更新密钥已选择。

如果您不编写代码来执行 Oauth 握手,您仍然可以使用 playground 生成 Oauth 访问令牌。令牌最多只能在 6 个月内有效,然后才需要刷新。

https://appcenter.intuit.com/Playground/OAuth/IA/

其次,您的开发用户密钥和密码允许您访问免费的 QuickBooks Online 沙盒,而您的生产用户密钥和密码允许您访问您的生产 QuickBooks Online 帐户。

您可以随意使用 playground 生成访问令牌,但您必须每 6 个月生成一次。在您的代码中更简单地实现 Oauth 登录和握手,并根据需要重新登录或调用刷新。

-震撼