与QuickBooks Online V3 API交互

时间:2014-02-05 23:38:31

标签: asp.net vb.net http sdk quickbooks-online

我正在编写一个Web应用程序(不会由Intuit在其App Center上发布)与QuickBooks Online(QBO)进行交互以进行同步,使用VB.NET和ASP.NET。我很难理解如何准确地完成这项工作或从何处开始。我明白这一点:

  1. 用户访问您的Web应用程序,并显示“Connect to QuickBooks”按钮(Intuit所需的In-App授权)。
  2. 在单击按钮之前,您发送HTTP请求以使用您的使用者凭据获取OAuth请求凭据。
  3. 一旦用户点击该按钮,他们就会被重定向到QuickBooks Online(QBO),在那里他们可以登录然后授权访问某个公司,并为您提供授权的请求凭据。
  4. 然后QBO重定向回您的网站,表明您已获得授权请求凭据,您可以在其中发送HTTP请求以获取访问凭据。
  5. 获得访问凭证后,您基本上可以自由地与QBO V3 API进行交互。
  6. 然后,您可以使用访问凭据构建HTTP请求,该请求在正文中发送带有XML / JSON的特定HTTP方法,以在QBO中执行相应的CRUD操作,QBO发送响应以指示其是否成功。
  7. 当您的应用程序与QBO交互完成后,您只需确保将访问凭据存储在安全的地方,让用户继续他们的生活。
  8. (旁边问题:这是正确的还是我错过了什么或误解了什么?)

    我的主要问题:作为应用程序开发人员,您是否需要构建这些HTTP请求,或者您是使用他们的SDK还是完全不同的东西,而我只是没有得到它?

    我试图解决这个问题,但听起来你应该从头开始构建这个,但后来我查看了他们的SDK,他们有所有不同实体类型的类,但是他们的序列化程序没有序列化正确,他们谈论他们的DataService类,以及如何使用它来发送对象并使用他们主持的一些JavaScript文件,我们只看到它们被引用但没有被他们解释,或者任何人真的,我发现的信息似乎已经过时/弃用了,你...

    也许只是因为我是网络开发的新手,所有这一切都在我的脑海中,这很可能。

    (非主题 - 排序:是我还是他们的网站被荒谬地打破了?看起来好像很多都不能正常工作或者事情很难导航并找到......)

    无论如何,感谢任何人都能提供的帮助。如果我需要提供更多细节或提出不同的问题,请告诉我。这是新的,它比我想要的东西更难哈哈。

2 个答案:

答案 0 :(得分:2)

  

我的主要问题:作为应用程序开发人员,您是否需要构建   这些HTTP请求还是完全使用他们的SDK或其他东西   不同,我只是没有得到它?

这完全取决于您,开发人员。

如果你希望自己推出并构建自己的HTTP请求,你当然可以。您几乎肯定会想要使用预先打包的OAuth库,因为OAuth实现起来并不容易。

但是,您当然也可以使用现有的代码库/ DevKit,在这种情况下,库/ DevKit将为您构建HTTP请求。

DevKits应该包含示例代码,向您展示如何实际执行此操作,因此这可能是您开始的最佳位置。

答案 1 :(得分:1)

你走在正确的轨道上。

首先,您需要注册IPP才能获得 ConsumerKey,ConsumerKey秘密和应用程序ID。

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

如果用户没有访问令牌,则会显示“连接到quickbooks”按钮,否则您可以将其隐藏。

请求代码:https://github.com/IntuitDeveloperRelations/IPP_Sample_Code/blob/master/QuickbooksAPI/DotNet/WebForms%20application/QuickBooksApiDotNetWebFormsSampleApp/OauthGrant.aspx.cs

访问代码:https://github.com/IntuitDeveloperRelations/IPP_Sample_Code/blob/master/QuickbooksAPI/DotNet/WebForms%20application/QuickBooksApiDotNetWebFormsSampleApp/OauthHandler.aspx.cs

获取accessstoken后,accesskey secret和realmID(companyid)将其保存到您的数据库。 确保加密。

所以下次同一个用户连接到quickbooks时,他们不需要完成上述所有步骤。

OAuthRequestValidator oauthValidator =新的OAuthRequestValidator(accessToken,accessTokenSecret,consumerKey,consumerSecret);

ServiceContext context = new ServiceContext(appToken,companyID,IntuitServicesType.QBO,oauthValidator);

https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/0150_ipp_.net_devkit_3.0/0002_synchronous_calls/0001_data_service_apis