我正在实现一个内部程序,以从数据库中生成发票。在使用.NET Core
中。我安装了Xero.Api.SDK.Core v 1.1.4
我发现Xero文档非常难以理解,并且有些过时。我看了一下Github存储库,它们仅引用了OAuth 2.0
。就我而言,我不需要任何用户交互,因为我需要后台进程。
我创建了一个帐户,作为开发人员和演示公司进行测试。
我用Google搜索了一下,然后在一个网站上找到了一个如何连接到api的示例(我在Xero文档中找不到任何详细信息)。
X509Certificate2 cert = new X509Certificate2(@"public_privatekey.pfx", "password");
var api = new Xero.Api.Example.Applications.Private.PrivateAuthenticator(cert);
var private_app_api = new XeroCoreApi("https://api.xero.com",
new PrivateAuthenticator(cert),
new Consumer("ClientId", "ClientSecret"),
null, null);
现在,我想我应该使用api。我试图阅读联系人列表:
var contacts = private_app_api.Contacts;
var list = contacts.FindAsync().Result;
结果是以下错误:
System.AggregateException:'发生一个或多个错误。 (oauth_problem = consumer_key_unknown&oauth_problem_advice =已识别消费者%20key%20was%20not%20)'
内部异常 UnauthorizedException:oauth_problem = consumer_key_unknown&oauth_problem_advice =已识别消费者%20key%20was%20not%20
然后,我从Github下载存储库。我复制并粘贴ClientId和ClientSecret并运行测试。没有一个测试通过!
我的目标是创建联系人或在列表中找到联系人,创建发票并将发票以PDF格式保存在我的存储中。
我该怎么做?有什么例子吗?
PS:在developer forum中,登录名无效,并且邮递员收藏集很旧,也没有。
我很绝望。我尝试使用XOauth
以另一种方式连接到api。最差如Xero在Github上所述,我创建了连接。
当我尝试与之建立联系
xoauth连接
在浏览器中打开一个新标签页,然后...
我按照Postman的步骤操作。我在邮递员中打开了收藏。在环境中,我从Xero Developer站点更新了client_id和client_secret,然后更新了以下配置:
re_directURI:https://developer.xero.com
范围:offline_access个人资料电子邮件计费。交易
我打开了入门 API,生成令牌,并且得到了相同的结果。
答案 0 :(得分:0)
老实说,那真是一团糟。我花了两个多星期的时间来了解如何调用Xero。我创建了post to explain step by step我必须要做的事情。
有很多问题:
解释所有内容很长,但是例如,如果您想读取组织,则使用RestSharp
的代码为:
/// <summary>
/// Gets the organizations.
/// </summary>
/// <returns>OrganizationResponse.</returns>
public OrganizationResponse GetOrganizations()
{
var _client = new RestClient("https://api.xero.com/connections");
_client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer " + _settings.AccessToken);
var response = _client.Execute<IList<Organization>>(request);
return response;
}
我将创建其他文章来解释如何实现更多功能。