我的公司使用QuickBooks Online,我想编写一些c#脚本,可以从QuickBooks Online订阅中检索客户列表和发票列表等基本信息。
我还想提交发票和付款。
我创建了一个QuickBooks IPP帐户(在developer.intuit.com上)。
我能够验证自己(OAuth)就好了。我的问题是:
1)每次我希望连接到QBO IPP(检索客户列表,提交发票等)时,是否需要对自己进行身份验证?或者我的应用程序可以自我验证一次&几个月保持“联系”?
2)是否有任何示例代码可以执行基本操作,例如获取客户列表,提交发票等等?我从this link
下载了示例MVC应用程序这非常有用 - 但是当我尝试让一些代码工作时,我只是得到错误 - 这引出了我的第一个问题 - 我可以验证自己的ONCE并使用那些令牌(appToken和appTokenSecret)很多时候,为了执行简单的任务(获取客户名单),或者我每次都必须对自己进行身份验证?
谢谢。
答案 0 :(得分:11)
重新 - 1)每次我希望连接到QBO IPP(检索客户列表,提交发票等)时,是否需要对自己进行身份验证?或者我的应用程序可以自我验证一次&几个月保持“联系”?
请查看以下步骤以获取OAuth令牌,您可以使用该令牌针对您的QBO帐户进行API调用。如果您在appcenter中创建应用程序,您将获得consumerKey和consumerSecret。 https://developer.intuit.com/Application/Create/IA
使用上述两个令牌,您可以从OAuthPlayground生成accessToken和accessSecret。 https://appcenter.intuit.com/Playground/OAuth/IA PN - 完成C2QB(OAuth)流程后,您应该使用“App Menu API Test”。选项,它将显示accessToken和accessSecret。
这些令牌有效期为180天(最高)。当这些令牌超过150天(并且<180天)时,您可以进行重新连接API调用以再次重新验证这些令牌。 参考https://developer.intuit.com/docs/0050_quickbooks_api/0020_authentication_and_authorization/oauth_management_api#Reconnect
因此,您可以始终保留这些令牌并重复使用它。
要让最终用户将他们的QB数据与您的SaaS应用程序连接,您需要实现一个名为“连接到Quickbook”的向导。使用3-legged Oauth,您的应用程序将能够捕获与最终用户的qbo帐户对应的acessToken和acessSecret。 参考 - https://developer.intuit.com/docs/0100_accounting/0060_authentication_and_authorization/connect_from_within_your_app#7._Add_the_Connect_to_QuickBooks_button
重新 - 2)是否有任何示例代码可以执行基本操作,例如获取客户列表,提交发票等等?
和how to add invoice or sales receipt quickbooks rest api v3.0
希望这会有用。
由于
答案 1 :(得分:0)
这是使用 c# 获取 Quickbooks 数据的示例代码。 您可以使用 OAuth play ground(https://developer.intuit.com/app/developer/playground) 来获取访问令牌、领域 ID。 基本网址是 https://sandbox-quickbooks.api.intuit.com/v3/company/realmId/query?minorversion={{minorversion}}。 在这里,我使用 55 作为次要版本。
using Intuit.Ipp.Core;
using Intuit.Ipp.Data;
using Intuit.Ipp.QueryFilter;
using Intuit.Ipp.Security;
using System;
using System.Collections.Generic;
using System.Linq;
namespace InvoiceTable
{
class Program
{
static void Main(string[] args)
{
try
{
//List<Invoice> InvoiceList = new List<Invoice>();
OAuth2RequestValidator oauthValidator = new OAuth2RequestValidator(Access_Token);
ServiceContext serviceContext = new ServiceContext(realm Id, IntuitServicesType.QBO, oauthValidator);
serviceContext.IppConfiguration.MinorVersion.Qbo = "minorversion";
serviceContext.IppConfiguration.BaseUrl.Qbo = Base URL;
var querySvc = new QueryService<Invoice>(serviceContext);
var InvoiceList = querySvc.ExecuteIdsQuery("Select Balance From Invoice").ToList();
}
catch (Exception ex)
{
throw;
}
}
}
}
IppDotNetSdkForQuickBooksApiV3 版本 10.0.0 是您必须安装的包。