我想在我的应用程序中联系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;
答案 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)
好吧,您可以在每次通话时重新进行身份验证,或者,您可以创建一个计时器事件,该事件会每分钟触发一次,并保持连接打开。