Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从桌面应用程序使用etsy api创建列表_C#_Wpf_Api - Fatal编程技术网

C# 从桌面应用程序使用etsy api创建列表

C# 从桌面应用程序使用etsy api创建列表,c#,wpf,api,C#,Wpf,Api,我正在开发一个桌面应用程序,用户可以从中使用etsyapi创建列表。根据etsy支持,如果您正在访问自己的店铺,则不需要完全访问。然而,我得到了以下错误: 任何帮助都将不胜感激 代码如下: var baseUrl = "http://openapi.etsy.com/v2/listings"; restClient = new RestClient(baseUrl); oAuth = new OAuthBase(); e1 = new Etsy_port

我正在开发一个桌面应用程序,用户可以从中使用etsyapi创建列表。根据etsy支持,如果您正在访问自己的店铺,则不需要完全访问。然而,我得到了以下错误:

任何帮助都将不胜感激

代码如下:

var baseUrl = "http://openapi.etsy.com/v2/listings";
   restClient = new RestClient(baseUrl);
   oAuth = new OAuthBase();           
   e1 = new Etsy_portal(consumerKey, consumerSecret);
   string str = e1.GetConfirmUrl(out AccessToken, out AccessTokenSecret);
   e1.ObtainTokenCredentials(AccessToken, AccessTokenSecret, verifiedToken, out PAccessToken, out PAccessTokenSecret);
   string nonce = oAuth.GenerateNonce();
   string timeStamp = oAuth.GenerateTimeStamp();
   string normalizedUrl;
   string normalizedRequestParameters;
   string sig = oAuth.GenerateSignature(new Uri(baseUrl + MethodLocation), consumerKey, consumerSecret, PAccessToken, PAccessTokenSecret,
                        "Post", timeStamp, nonce, 
   OAuth.OAuthBase.SignatureTypes.HMACSHA1, out normalizedUrl, out normalizedRequestParameters);
   restClient = new RestClient(baseUrl);
   var request = new RestRequest();

   request.AddParameter("api_key", consumerKey);
   request.AddParameter("oauth_consumer_key", consumerKey);
   request.AddParameter("oauth_token", PAccessToken);
   request.AddParameter("oauth_nonce", nonce);
   request.AddParameter("oauth_timestamp", timeStamp);
   request.AddParameter("oauth_signature", sig);
   request.AddParameter("oauth_signature_method", "HMAC-SHA1");
   request.AddParameter("oauth_version", "1");

   request.AddParameter("title", "This is a test");
   request.AddParameter("description", "Test Description");
   request.AddParameter("quantity", "1");
   request.AddParameter("price", "5");
   request.AddParameter("is_supply", "false");
   request.AddParameter("when_made", "2010_2017");
   request.AddParameter("who_made", "i_did");
   request.Method = Method.POST;

           IRestResponse resRes = restClient.Execute(request);
var baseUrl=”http://openapi.etsy.com/v2/listings";
restClient=新的restClient(baseUrl);
oAuth=新的OAuthBase();
e1=新的Etsy_门户(consumerKey、ConsumerCret);
string str=e1.GetConfirmUrl(out-AccessToken,out-AccessTokenSecret);
e1.获取增量(AccessToken、AccessTokenSecret、verifiedToken、out-PAccessToken、out-PAccessTokenSecret);
sigHasher=new-HMACSHA1(new-ascienceoding().GetBytes(string.Format(“{0}&{1}”,consumerSecret,paccestokensecret));
字符串nonce=oAuth.generateOnce();
字符串timeStamp=oAuth.GenerateTimeStamp();
字符串规范化;
字符串参数;
var数据=新字典{
{“title”,“这是一个test1”},
{“描述”,“测试描述1”},
{“数量”,“1”},
{“价格”,“5”},
{“is_supply”,“false”},
{“国家”,“草案”},
{“制造时”、“2010年至2017年”},
{“谁做的”,“我做的”},
{“配送模板id”,“43862539760”}
};
添加(“oauth_consumer_key”,consumerKey);
添加(“oauth_签名法”、“HMAC-SHA1”);
添加(“oauth_时间戳”,时间戳);
data.Add(“oauth_nonce”,nonce);//必需,但Twitter似乎没有使用它,所以“a”就可以了。
添加(“oauth_令牌”,paccestoken);
添加(“oauth_版本”、“1.0”);
添加(“oauth_签名”,GenerateSignature(baseUrl,data));
字符串oAuthHeader=GenerateAuthHeader(数据);
var formData=new FormUrlEncodedContent(data.Where(kvp=>!kvp.Key.StartsWith(“oauth”));
使用(var http=new HttpClient())
{
添加(“授权”,oAuthHeader);
var httpResp=http.PostAsync(baseUrl,formData);
var respBody=httpResp.Result;
}

如果可能,最好将代码包含在原始帖子中。
var baseUrl = "http://openapi.etsy.com/v2/listings";
    restClient = new RestClient(baseUrl);
    oAuth = new OAuthBase();
    e1 = new Etsy_portal(consumerKey, consumerSecret);
    string str = e1.GetConfirmUrl(out AccessToken, out AccessTokenSecret);
    e1.ObtainTokenCredentials(AccessToken, AccessTokenSecret, verifiedToken, out PAccessToken, out PAccessTokenSecret);
    sigHasher = new HMACSHA1(new ASCIIEncoding().GetBytes(string.Format("{0}&{1}", consumerSecret, PAccessTokenSecret)));
    string nonce = oAuth.GenerateNonce();
    string timeStamp = oAuth.GenerateTimeStamp();
    string normalizedUrl;
    string normalizedRequestParameters;
    var data = new Dictionary<string, string> {
        { "title", "This is a test1" },
        { "description", "Test Description1" },
        { "quantity", "1" },
        { "price", "5" },
        { "is_supply", "false" },
        { "state", "draft" },
        { "when_made", "2010_2017" },
        { "who_made", "i_did" },
        { "shipping_template_id", "43862539760" }
    };


    data.Add("oauth_consumer_key", consumerKey);
    data.Add("oauth_signature_method", "HMAC-SHA1");
    data.Add("oauth_timestamp", timeStamp);
    data.Add("oauth_nonce", nonce); // Required, but Twitter doesn't appear to use it, so "a" will do.
    data.Add("oauth_token", PAccessToken);
    data.Add("oauth_version", "1.0");
    data.Add("oauth_signature", GenerateSignature(baseUrl, data));
    string oAuthHeader = GenerateOAuthHeader(data);
    var formData = new FormUrlEncodedContent(data.Where(kvp => !kvp.Key.StartsWith("oauth_")));
    using (var http = new HttpClient())
    {
        http.DefaultRequestHeaders.Add("Authorization", oAuthHeader);
        var httpResp = http.PostAsync(baseUrl, formData);
        var respBody = httpResp.Result;

    }