Получение контактной информации на основе имени контакта из Xero API с использованием Oauth2
Я получаю контактные данные из Xero по имени через Xero API (с использованием OAuth2). Теперь проблема в том, что я могу получить контактную информацию, но некоторые данные всегда имеют значение null, например, категории отслеживания.
Я обратился в службу поддержки 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
Бухгалтерский учетApi относится к
Xero.NetStandard.OAuth2.Api
По этому коду я могу получать контакты, но категории отслеживания всегда нулевые. Как я могу получить всю информацию о контактах без поиска по GUID.
Кто-нибудь может мне здесь помочь?
Контактная информация Xero: https://developer.xero.com/documentation/api/contacts
Категории отслеживания: https://developer.xero.com/documentation/api/tracking-categories
2 ответа
после обсуждения с командой поддержки Xero я обнаружил, что они намеренно обертывают данные при таком поиске, поэтому, если я хочу получить все детали контакта на основе общего имени или подобного, мне придется передать номер страницы. в моем случае page = 1. (предположим, что на одной странице не будет более сотни записей с одинаковым именем, поскольку он проверяет 100 лучших записей, которые соответствуют условию where). Если у вас более 100 контактов, названных так, как вы передали, то page = 2 вернет второй набор из 100 контактов.
Ссылка: https://central.xero.com/s/case?caseId=5003m0000174dtJAAQ
Я вижу в документации и спецификации API, что у контактов есть SalesTrackingCategories и PurchasesTrackingCategories, но у меня возникли проблемы с настройкой этого через пользовательский интерфейс или API.
Можете ли вы сделать снимок экрана своего пользовательского интерфейса Xero, где установлена категория отслеживания этого пользователя, и некоторые другие данные о том, что возвращается из пользовательского интерфейса?
Привет - установил их в пользовательском интерфейсе .. У меня были настройки отслеживания только для счетов, а не для контактов. Спасибо.
Итак, вы нажали этот ключ на вложенный массив?
SalesTrackingCategories может иметь вложенный массив SalesTrackingCategory, который содержит значения?
Я дважды проверил другой SDK, и он сериализовал эти данные правильно, поэтому я догадываюсь, что это, вероятно, проблема с SDK, имеющим логические проблемы при синтаксическом анализе этого массива.
Лучше всего создать проблему прямо в репо со ссылкой на этот вопрос - 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"
}]
}