【发布时间】:2013-08-15 22:13:03
【问题描述】:
我能够使用 HttpPost 与 QuickBooks Online 一起使用 Signpost。但是,当我尝试使用过滤器进行查询时,每次都会收到 401 错误。联系支持后,我被告知这是一个已知错误。他们向我指出了 C# 中的一个示例。我在 Java 中使用 Signpost oauth 库。 C# 示例对我来说没有意义,因为我在 Signpost 中没有这些功能。我也不明白我到底需要做什么。
附注:对于这种内容类型,我必须使用 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);
【问题讨论】:
标签: quickbooks intuit-partner-platform intuit quickbooks-online signpost