Intuit.Ipp.Exception.InvalidTokenException: неавторизованный

Я создал интеграцию с QuickBooks Online с помощью QuickBooks Anywhere. Я использую платную версию QuickBooks Online, но мой клиент использует пробную версию. Мое приложение в настоящее время находится в режиме разработки и не было одобрено Intuit Marketplace.

Этот код отлично работает с моим сайтом. Означает ли пробная версия QuickBooks Online, что вы не можете записывать данные? Мой клиент смог получить список учетных записей, поставщиков и способов оплаты.

Вот мой код:

ItemQuery itQuery = new ItemQuery();
itQuery.Name = "Unknown";
itemsList = itQuery.ExecuteQuery<Item>();

QBO: ошибка 23.01.2013 12:59:48 Ошибка при запросе элементов: Intuit.Ipp.Exception.InvalidTokenException: Unauthorized at Intuit.Ipp.Services.QboService.Get[T](IQboQuery qboQuery, String simpleQuery, Boolean isQuerySpecified) в Intuit.Ipp.Services.ServiceExtensions.ExecuteQuery[T] (запрос IQuery, ServiceContext ServiceContext)

Клиент может аутентифицировать OK:

OAuthRequestValidator oauthValidator = new OAuthRequestValidator(acT, acTS, coK, coKS);
IntuitServicesType st = IntuitServicesType.QBO;
ServiceContext context = new ServiceContext(oauthValidator, acT, cId, st);
dataServices = new DataServices(context);

person Joseph Anderson    schedule 23.01.2013    source источник


Ответы (2)


Я обнаружил, что если переменная itQuery.Name имеет значение null или пустую строку, вы получите эту ошибку. Может ли Intuit изменить сообщение об ошибке, чтобы оно говорило: «Вы должны указать значение для поля «Имя запроса элемента». Вы ввели пустую или нулевую строку».

В моем конкретном случае у меня была строка, которая должна была сказать неизвестно. Это была пустая строка.

person Joseph Anderson    schedule 23.01.2013

Вам нужно будет добавить проверку ошибок в ваше приложение, чтобы убедиться, что вы не передаете пустую строку. В противном случае вы делаете ненужный вызов API.

Основная причина, по-видимому, заключается в том, что DevKit неправильно вычисляет подпись, когда передается пустая строка, но запрос недействителен.

person Peter Lavelle    schedule 24.01.2013