我想調用數據服務,但每次都收到500錯誤。當我使用API Explorer中的「試用」按鈕進行測試時,它工作正常。答覆很好。但在我的應用程序中,它未能連接。相同的OAuth標頭適用於API,但不適用於該應用程序。Quickbook在線服務提供500個內部服務器?
String urlReq = "https://qbo.sbfinance.intuit.com/resource/companymetadata/v2/" + intuitRealmID; //static baseURL
Uri uriToIntuit = new Uri(urlReq);
HttpWebRequest intuitReq = (HttpWebRequest)WebRequest.Create(uriToIntuit);
intuitReq.Method = "GET";
intuitReq.ContentType = "text/xml";
intuitReq.ContentLength = 0;
intuitReq.Accept = "text/xml";
OAuthUtils.signRequest(intuitReq, ap.ConsumerKey, ap.ConsumerSecret, rToken.Token,rToken.TokenSecret);
HttpWebResponse httpResponse = (HttpWebResponse)(intuitReq.GetResponse());
...
public static void signRequest(HttpWebRequest request, string consumerKey, string consumerSecret, string token, string tokenSecret)
{
string normalizedUrl;
string normalizedRequestParameters;
string timeStamp = OAuthUtils.GenerateTimeStamp();
string nonce = OAuthUtils.GenerateNonce();
OAuthConsumerBase consumerBase = new OAuthConsumerBase();
string signature = consumerBase.GenerateSignature(
request.RequestUri,
null, // callback,
null, // verifier,
consumerKey,
consumerSecret,
token, // token,
null, // type,
tokenSecret, // tokenSecret,
request.Method,
timeStamp,
nonce,
null, // status,
out normalizedUrl,
out normalizedRequestParameters
);
string authHeader = OAuthRequest.GenerateAuthHeader(
nonce,
timeStamp,
signature,
token,
consumerKey,
null, // verifier
null, // callback
"HMAC-SHA1", // signature type
"1.0" // version
);
request.Headers[HttpRequestHeader.Authorization] = authHeader;
}
我已經嘗試了靜態基本URL這也給了500錯誤。 https://qbo.intuit.com/qbo1/rest/user/v2/
OAuth oauth_version=\"1.0\", oauth_nonce=\"c830ffa8338b4d6fa0b3e8d03f144642\", oauth_timestamp=\"1374015013\", oauth_consumer_key=\"qyprdpwcmwYdE7nfBkG4Mb0t65ufH8\", oauth_token=\"qyprdTnNWcIBorQk9L93o8ERKPZI3ELoBUHBrULzvsxPsPMU\", oauth_signature_method=\"HMAC-SHA1\", oauth_signature=\"Ws0WpQmV9aAzaFHw%2B6wMC5aidBk%3D\"" string
謝謝但DevKit不是這裏的一個選項。我們的應用程序一直與QB桌面工作正常。 QB Online有什麼特別之處?設置別的東西?該錯誤消息太泛泛。 – user1949497
接受內容類型錯誤。我爲QB桌面使用「text/xml」。但它不適用於QB Online。 intuitReq.Accept =「application/xml」; – user1949497