Получение контактной информации на основе имени контакта из 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"
  }]
}
Другие вопросы по тегам