public TwitterOAuthRequestConstructor(Uri requestUri, TwitterOAuthTokens tokens, string method = "GET") { Verb = method; RequestUriWithoutQuery = new Uri(requestUri.AbsolutaSinQuery()); if (!string.IsNullOrEmpty(requestUri.Query)) { QueryParams = requestUri.CogerQueryParametros() .Select(p => new OAuthParametro(p.Key, Uri.UnescapeDataString(p.Value))) .ToList(); } else { QueryParams = new List <OAuthParametro>(); } EncodedRequestUri = GetEncodedUri(requestUri, QueryParams); Version = new OAuthParametro("oauth_version", "1.0"); Nonce = new OAuthParametro("oauth_nonce", GenerarNonce()); Timestamp = new OAuthParametro("oauth_timestamp", GenerarTiempoLapso()); SignatureMethod = new OAuthParametro("oauth_signature_method", "HMAC-SHA1"); ConsumerKey = new OAuthParametro("oauth_consumer_key", tokens.ConsumerKey); ConsumerSecret = new OAuthParametro("oauth_consumer_secret", tokens.ConsumerSecret); Token = new OAuthParametro("oauth_token", tokens.AccessToken); TokenSecret = new OAuthParametro("oauth_token_secret", tokens.AccessTokenSecret); TokenCallback = new OAuthParametro("oauth_callback", "https://pepeizqapps.com/"); }
private static Uri GetEncodedUri(Uri requestUri, IEnumerable <OAuthParametro> parametros) { StringBuilder requestParametersBuilder = new StringBuilder(requestUri.AbsolutaSinQuery()); var oAuthParametros = parametros as OAuthParametro[] ?? parametros.ToArray(); if (oAuthParametros.Any()) { requestParametersBuilder.Append("?"); foreach (var queryParam in oAuthParametros) { requestParametersBuilder.AppendFormat("{0}&", queryParam.ToString()); } requestParametersBuilder.Remove(requestParametersBuilder.Length - 1, 1); } return(new Uri(requestParametersBuilder.ToString())); }