Мне удалось заставить Signpost работать с QuickBooks Online с помощью HttpPost. Однако, когда я пытался опросить фильтры, я каждый раз получал ошибку 401. После обращения в службу поддержки мне сообщили, что это известная ошибка. Они указали мне пример на C#. Я использую библиотеку Signpost oauth на Java. Пример C# не имеет смысла для меня, поскольку у меня нет функций, доступных в Signpost. Также я не понимаю, что именно мне нужно делать.Quickbooks Онлайн-фильтрация с помощью Signpost возвращает ошибку 401
Одностороннее примечание: для этого типа содержимого мне пришлось использовать HttpClient: «application/x-www-form-urlencoded». Это ограничение, которое исходит от Signpost.
Несанкционированное токен OAuth: signature_invalid401SERVER
C# обходной путь пример: https://gist.github.com/IntuitDeveloperRelations/6024616
/* filtering fails with 401 error */
HttpClient client = new DefaultHttpClient();
HttpPost requestHp = new HttpPost("https://qbo.intuit.com/qbo28/resource/accounts/v2/670436015");
requestHp.addHeader("Content-Type", "application/x-www-form-urlencoded");
BasicHttpEntity filter = new BasicHttpEntity();
filter.setContent(new StringInputStream("Filter=Name :EQUALS: Continuing"));
requestHp.setEntity(filter);
CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(getOauthConsumerKey(), getOauthConsumerSecret());
consumer.setTokenWithSecret(getOauthAccessToken(),getOauthAccessTokenSecret());
consumer.sign(requestHp);
HttpResponse response = client.execute(requestHp);
Спасибо, но это не было проблемой. Я просто изменил имя, но все еще получил ошибку 401. filter.setContent (новый StringInputStream ("Filter = Name: EQUALS: Continuing")); Несанкционированное OAuth лексем: signature_invalid SERVER –
user1949497
при установке объект (фильтр), вам должен использовать UrlEncodedFormEntity. Я добавил полный рабочий фрагмент кода в свой пост. Это сработало для меня. Пожалуйста, дайте мне знать, если это поможет. Thanks –
Новый код работал! Бесконечно благодарен! – user1949497