1

Intuit でフィルターを使用しようとすると、「Unauthorized」エラーが発生します。

例外の詳細: Intuit.Ipp.E​​xception.InvalidTokenException: Unauthorized

以下のコードは、サービス コンテキストをセットアップするために使用されます。

string AppToken = ConfigurationManager.AppSettings["applicationToken"].ToString(CultureInfo.InvariantCulture);
String realmId = HttpContext.Current.Session["realm"].ToString();
String accessToken = HttpContext.Current.Session["accessToken"].ToString();
String accessTokenSecret = HttpContext.Current.Session["accessTokenSecret"].ToString();
String consumerKey = ConfigurationManager.AppSettings["consumerKey"].ToString(CultureInfo.InvariantCulture);
String consumerSecret = ConfigurationManager.AppSettings["consumerSecret"].ToString(CultureInfo.InvariantCulture);
IntuitServicesType intuitServiceType = (IntuitServicesType)HttpContext.Current.Session["intuitServiceType"];

OAuthRequestValidator oauthValidator = new OAuthRequestValidator(accessToken, accessTokenSecret, consumerKey, consumerSecret);
context1 = new ServiceContext(oauthValidator, AppToken, realmId, IntuitServicesType.QBO);

最後に変更された請求書を取得するためのクエリは次のとおりです。

List<Bill> CustomerBills = billQry.ExecuteQuery<Bill>(context1).ToList<Bill>();

間違って渡したパラメータ値を教えてください。

4

1 に答える 1

2

次のコード .NET DevKit コードは、不正な形式の要求本文を送信し、OAuth 署名エラーになります。これは DevKit のバグです。

BillQuery billQry = new BillQuery();
billQry.LastUpdatedTime = DateTime.Now.AddDays(-20);
billQry.SpecifyOperatorOption(FilterProperty.LastUpdatedTime, FilterOperatorType.AFTER);
billQry.LastUpdatedTime = DateTime.Now; 
billQry.SpecifyOperatorOption(FilterProperty.LastUpdatedTime, FilterOperatorType.BEFORE); 
billQry.PageNumber = 1;
billQry.ResultsPerPage = 15;
billQry.SpecifySortOption(SortProperty.LastUpdatedTime, SortOrderOption.HighToLow);
List<Intuit.Ipp.Data.Qbo.Bill>CustomerBills =billQry.ExecuteQuery<Intuit.Ipp.Data.Qbo.Bill>(context).ToList();

回避策は、以下のサンプル コードを変更してリクエストを作成し、レスポンスを Bill オブジェクトに逆シリアル化することです。

Pastebin のサンプル コード

于 2013-03-04T18:47:42.650 に答える