如何对Quickbooks API进行身份验证/授权?

时间:2014-07-10 01:50:52

标签: c# quickbooks intuit-partner-platform quickbooks-online intuit

我想在我的应用程序中联系Quickbooks来创建一些发票。当我生成一个临时的AccessToken和AccessTokenSecret时,我可以这样做,但那些过期。如何可靠且重复地调用Quickbooks API?

注意:从我的应用程序访问数据的“用户”可以被视为“系统”。我使用Quickbooks API简化/自动化个人工作流程。

string accessToken = "temporaryAccessToken";  //this expires
string accessTokenSecret = "temporaryAccessTokenSecret";  //this expires
string consumerKey = "myConsumerKey";
string consumerSecret = "myConsumerSecret";

m_OAuthRequestValidator = new OAuthRequestValidator(
accessToken, accessTokenSecret, consumerKey, consumerSecret);

string appToken = "myAppToken";
string companyID = "myCompanyID";
ServiceContext context = new ServiceContext(appToken, companyID, IntuitServicesType.QBD, m_OAuthRequestValidator);

DataService service = new DataService(context);

var customer = new Customer();
customer.GivenName = "Scout";
customer.FamilyName = "Berman";

Customer resultCustomer = service.Add(customer) as Customer;

3 个答案:

答案 0 :(得分:3)

Intuit's documentation详细记录了这一点。

您基本上有两个选择:

<强> 1。如果您正在构建SaaS应用程序:

阅读有关implementing OAuth in your application的部分。它的香草OAuth添加了几个按钮小部件,以便将Intuit的品牌推向人们。

基本上,您在标题中嵌入了一个javascript script标记,该标记引入了Intuit的Javascript库,添加了对Intuit的Javascript setup()方法的调用,并进行了自定义网页中的HTML标记。这会让你变得非常漂亮&#34;连接到QuickBooks&#34;按钮。

当您点击该按钮时,它会启动一个标准的OAuth流程,该流程可以为您提供长期(6个月)的访问令牌。将令牌存储在您的应用中,以便您可以随时使用这些OAuth令牌拨打电话。

<强> 2。如果您只是为了个人用途而建立一次性用品:

您可以使用Intuit的游乐场工具获得6个月的代币:

在任何一种情况下:

您可以在其到期日期的30天内对renew the token进行REST API调用(例如,您可以继续对其进行扩展以使其永久有效)。

答案 1 :(得分:1)

您可以生成与目标QB帐户对应的accessToken和accessSecret。

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

OAuth tokens are valid for 180 days。您无需在每次通话中重新进行身份验证。

如果您想了解它在完全成熟的SaaS中的工作原理,那么您可以参考以下JAVA示例应用程序。 https://developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/sample_code/spring_sample_app_for_quickbooksapi

由于

答案 2 :(得分:-2)

好吧,您可以在每次通话时重新进行身份验证,或者,您可以创建一个计时器事件,该事件会每分钟触发一次,并保持连接打开。