我正在嘗試執行示例授權請求(或任何需要身份驗證的Etsy的api)在其documentation中給出的示例。我得到的迴應是「oauth_problem = token_rejected」。Etsy oauth身份驗證c#RestSharp
我使用了this SO answer以及benSharper連接的OAuth base。
我看過this和this等。其中一人使用https://sandbox.https://openapi.etsy.com/v2
,當我嘗試時,例外是「底層連接已關閉:無法建立SSL/TLS安全通道的信任關係。」我部署到我的服務器(這是https),仍然是相同的響應。
只是似乎無法使其工作。我錯過了什麼?
這裏是我的代碼:
public class AuthorizedRequestHelper
{
string baseUrl = "https://openapi.etsy.com/v2";
string relativePath = "/oauth/scopes";
string oauth_consumer_key = "xxx";
string consumerSecret = "xxx";
string oauth_token = "xxx";
string oauth_token_secret = "xxx";
public void test()
{
var restClient = new RestClient(baseUrl);
OAuthBase oAuth = new OAuthBase();
string nonce = oAuth.GenerateNonce();
string timeStamp = oAuth.GenerateTimeStamp();
string normalizedUrl;
string normalizedRequestParameters;
string sig = oAuth.GenerateSignature(new Uri(baseUrl + relativePath), oauth_consumer_key, consumerSecret, oauth_token, oauth_token_secret, "GET", timeStamp, nonce, out normalizedUrl, out normalizedRequestParameters);
var request = new RestRequest(relativePath);
request.Resource = string.Format(relativePath);
request.Method = Method.GET;
request.AddParameter("oauth_consumer_key", oauth_consumer_key);
request.AddParameter("oauth_token", oauth_token);
request.AddParameter("oauth_nonce", nonce);
request.AddParameter("oauth_timestamp", timeStamp);
request.AddParameter("oauth_signature_method", "HMAC-SHA1");
request.AddParameter("oauth_version", "1.0");
request.AddParameter("oauth_signature", sig);
IRestResponse irestResponse = restClient.Execute(request);
var content = irestResponse.Content;
// content = oauth_problem=token_rejected
}
}
任何幫助將不勝感激。
如何在桌面應用程序中使用此類? – Volatil3
我把它放在類庫中,這樣我就可以在Web應用程序或桌面應用程序中使用它。您需要添加適當的參考資料,當然 –
「不需要OAuthBase,RestSharp照顧。」你可以使用restsharp爲已簽名的請求創建OAuth簽名嗎? @MichaelTranchida –