使用 Oauth2 从 Xero API 获取基于联系人姓名的联系人详细信息
Get Contact Details based on Contact Name from Xero API using Oauth2
我正在通过 Xero API(使用 OAuth2)根据姓名从 Xero 获取联系人的详细信息。现在的问题是,我可以获得联系人的详细信息,但某些详细信息始终为空,例如跟踪类别。
我为此联系了 Xero 支持。他们建议通过 GUID 获取联系人。但问题是我需要按姓名获取,因为我正在搜索在 Xero 中共享相同姓名的联系人。所以可能有多个联系人,如果我按名称获取它不会给我跟踪类别详细信息。
这是我获取联系人的方式。
List<Contact> contactList = new List<Contact>();
var AccountingApi = new AccountingApi();
var response = await AccountingApi.GetContactsAsync(accessToken, xeroTenantId, null,
string.Format("FirstName != Null && FirstName.ToLower().Contains(\"{0}\")", "aaron"));
contactList = response._Contacts.ToList();
注意:
联系人指Xero.NetStandard.OAuth2.Model.Accounting
AccountingApi 指的是Xero.NetStandard.OAuth2.Api
通过此代码我可以获得联系人,但跟踪类别始终为空。如何在不通过GUID搜索的情况下获取所有联系人的详细信息。
有人可以帮我吗?
Xero 联系人:https://developer.xero.com/documentation/api/contacts
跟踪类别:https://developer.xero.com/documentation/api/tracking-categories
我在文档和 API 规范中看到联系人具有 SalesTrackingCategories 和 PurchasesTrackingCategories 但我遇到了问题实际上通过 UI 或 API.
设置
你能否在你的 Xero UI 上截屏,其中设置了该用户的跟踪类别,以及关于从 UI 返回的内容的一些其他数据?
嘿 - 在 UI 中设置了它们。我只有发票的跟踪设置,没有联系人。谢谢
那么您是否通过该键单击了嵌套数组?
SalesTrackingCategories 可能有一个包含值的嵌套 SalesTrackingCategory 数组?
我仔细检查了另一个 SDK,它序列化了正确的数据,所以我的直觉是这可能是 SDK 在将其解析为数组时存在逻辑问题的问题..
最好直接在回购协议中创建一个问题 link 这个问题 - https://github.com/XeroAPI/Xero-NetStandard/issues 我会标记我管理那个的同事。
供参考 - 端点调用 JSON 需要像这样构造才能成功更新它们。
// POST https://api.xero.com/api.xro/2.0/Contacts/<contact-uuid>
{
"SalesTrackingCategories": [{
"TrackingCategoryName": "Contact Tracking",
"TrackingOptionName": "Cool customer"
}]
}
在与 Xero 支持团队讨论后,我发现当您像这样搜索时,他们会故意包装数据,因此如果我想根据通用名称或类似名称获取联系人的所有详细信息,我将不得不通过页面数字。在我的例子中,页面=1。 (假设在检查符合 where 条件的前 100 条记录时,一页中共享相同名称的记录不会超过 100 条)。如果您有超过 100 个联系人的名字与您传递的名称相同,那么 page=2 将 return 第二组 100 个联系人。
参考:https://central.xero.com/s/case?caseId=5003m0000174dtJAAQ
我正在通过 Xero API(使用 OAuth2)根据姓名从 Xero 获取联系人的详细信息。现在的问题是,我可以获得联系人的详细信息,但某些详细信息始终为空,例如跟踪类别。
我为此联系了 Xero 支持。他们建议通过 GUID 获取联系人。但问题是我需要按姓名获取,因为我正在搜索在 Xero 中共享相同姓名的联系人。所以可能有多个联系人,如果我按名称获取它不会给我跟踪类别详细信息。
这是我获取联系人的方式。
List<Contact> contactList = new List<Contact>();
var AccountingApi = new AccountingApi();
var response = await AccountingApi.GetContactsAsync(accessToken, xeroTenantId, null,
string.Format("FirstName != Null && FirstName.ToLower().Contains(\"{0}\")", "aaron"));
contactList = response._Contacts.ToList();
注意:
联系人指Xero.NetStandard.OAuth2.Model.Accounting
AccountingApi 指的是Xero.NetStandard.OAuth2.Api
通过此代码我可以获得联系人,但跟踪类别始终为空。如何在不通过GUID搜索的情况下获取所有联系人的详细信息。
有人可以帮我吗?
Xero 联系人:https://developer.xero.com/documentation/api/contacts
跟踪类别:https://developer.xero.com/documentation/api/tracking-categories
我在文档和 API 规范中看到联系人具有 SalesTrackingCategories 和 PurchasesTrackingCategories 但我遇到了问题实际上通过 UI 或 API.
设置你能否在你的 Xero UI 上截屏,其中设置了该用户的跟踪类别,以及关于从 UI 返回的内容的一些其他数据?
嘿 - 在 UI 中设置了它们。我只有发票的跟踪设置,没有联系人。谢谢
那么您是否通过该键单击了嵌套数组?
SalesTrackingCategories 可能有一个包含值的嵌套 SalesTrackingCategory 数组?
我仔细检查了另一个 SDK,它序列化了正确的数据,所以我的直觉是这可能是 SDK 在将其解析为数组时存在逻辑问题的问题..
最好直接在回购协议中创建一个问题 link 这个问题 - https://github.com/XeroAPI/Xero-NetStandard/issues 我会标记我管理那个的同事。
供参考 - 端点调用 JSON 需要像这样构造才能成功更新它们。
// POST https://api.xero.com/api.xro/2.0/Contacts/<contact-uuid>
{
"SalesTrackingCategories": [{
"TrackingCategoryName": "Contact Tracking",
"TrackingOptionName": "Cool customer"
}]
}
在与 Xero 支持团队讨论后,我发现当您像这样搜索时,他们会故意包装数据,因此如果我想根据通用名称或类似名称获取联系人的所有详细信息,我将不得不通过页面数字。在我的例子中,页面=1。 (假设在检查符合 where 条件的前 100 条记录时,一页中共享相同名称的记录不会超过 100 条)。如果您有超过 100 个联系人的名字与您传递的名称相同,那么 page=2 将 return 第二组 100 个联系人。
参考:https://central.xero.com/s/case?caseId=5003m0000174dtJAAQ