桌面应用程序使用IPP QBO API 3.0

时间:2014-03-11 14:48:54

标签: sdk desktop intuit-partner-platform intuit

我有一个桌面Windows应用程序,想要使用intuit IPP QBO API 3.0在线与quickbooks连接以创建发票,客户等。

正如文件所述,我需要在我的开发者帐户中添加应用程序。但是当尝试创建新的QuickBooks API应用程序时,它没有提供桌面应用程序选项。它要求我填写真正用于在线网络应用程序的所有网址信息。

在哪里注册intuit IPP QBO API 3.0的桌面应用程序?

更新

通过答案中提供的所有有用信息,我最终得到了一个小型库DesktopIppOAuth到我的项目中。该库使用OWIN自我托管web api 2.0并将oauth回调重定向到库本身。通过使用该库,我不需要设置一个单独的站点来接收回调并获取令牌。

3 个答案:

答案 0 :(得分:3)

OAuth只是你需要过去的痛苦事情。一旦你搞清楚了,你就会想知道大惊小怪。

我将一个示例Windows窗体解决方案here汇总在一起。它的快速和快速脏,所以对我很容易; - )

您还需要DevDefined.OAuth.dll,您可以获取here的代码。

关于Intuit,QBO和桌面解决方案:Intuit的应用注册并不知道或关心您的应用是否是桌面应用。唯一的问题是,如果您想要在他们的App Center上列出。在这种情况下,您必须构建适当的SaaS解决方案并通过Intuit的安全审查。对于单用户自定义应用程序,您可以将其保留为开发模式。据说它也可以在不通过所有手续的情况下发布一个未上市的大众市场应用程序,但我自己还没有完成这个过程。

QB Online的所有新开发都必须使用QBO v3 REST API。

你确实需要一些方法来接受来自Intuit的回调,但你只需要一个简单的页面,它可以从查询字符串中获取realmId和oauth_verifier并为用户显示它们。让用户将这些复制并粘贴到桌面应用程序中,这应该可以安全地保存。如果您没有可以执行此操作的网站,则可以非常便宜地构建一个(我偏爱Windows Azure)。我认为它甚至不需要是安全的 - 验证器只有在它用于获取访问令牌之后才能工作,并且您需要请求令牌才能使用它。

请参阅有关如何使用DevDefined OAuth处理QBO API请求的讨论:build a signature using devdefined

我在这些论坛中并没有像许多其他人一样慷慨,但我发现OAuth和非发布的应用程序存在很多痛苦和困惑,所以我认为这可能会有所帮助。我可能错过了一些细节,所以我希望其他人可以根据需要添加信息。

答案 1 :(得分:2)

根据IPP常见问题解答网站 -

What types of applications are supported with QuickBooks API?
QuickBooks API supports non-rich internet, SaaS apps that are accessed by users with a web browser.  Mobile extensions to these SaaS apps are also supported.

常见问题 - https://developer.intuit.com/docs/0025_quickbooksapi/0058_faq

所以你可以看到IPP&#39的市场(apps.com)不支持桌面应用程序

如果您创建桌面应用程序,那么在以标准方式生成OAuth时将面临挑战。因此,您可以针对此用例尝试以下操作。

您可以在桌面应用程序中使用嵌入式浏览器/单独的Web应用程序,您需要在其中实现C2QB流功能(与OAuth游乐场相同)。使用该应用程序的最终用户将生成与其QB帐户相对应的OAuth令牌。您可以在用户的​​系统中存储(加密)这些令牌,也可以将这些令牌存储在应用程序的服务后端中。最终用户需要第一次这样做。从下一次开始,他们可以简单地使用以前存储的OAuth令牌与他们的QB帐户进行交互。

C2QB - https://developer.intuit.com/docs/0025_quickbooksapi/0010_getting_started/0020_connect/0010_from_within_your_app/implement_oauth_in_your_app

由于

答案 2 :(得分:1)

无法注册桌面应用。您需要在这些字段中输入一些测试/非特定网址以获取开发令牌。

然后,您需要在我们的示例应用中设置这些令牌 - https://github.com/IntuitDeveloperRelations/ OR

在开发者操场上生成密钥。 转到管理我的应用 - >您的应用>测试连接到应用程序

在桌面应用中设置所有这些键,然后您可以调用QBO API。