private void SignRequest(WebRequest request) { var requestUri = request.RequestUri; if (request.RequestUri.Host.Contains("runscope")) { var url = request.RequestUri.ToString().Replace("payment-cmtapi-com-hqy5tesyhuwv.runscope.net", "payment.cmtapi.com"); requestUri = new Uri(url); } var oauthHeader = OAuthAuthorizer.AuthorizeRequest(ConsumerKey, ConsumerSecretKey, "", "", request.Method, requestUri, null); request.Headers.Add(HttpRequestHeader.Authorization, oauthHeader); request.ContentType = ContentType.Json; _logger.Maybe(() => _logger.LogMessage("CMT request header info : " + request.Headers)); _logger.Maybe(() => _logger.LogMessage("CMT request info : " + request.ToJson())); }
public void Share(string message, Action onRequestDone) { var content = string.Format("status={0}&trim_user=true&include_entities=true", OAuthEncoder.PercentEncode(message)); var taskUri = new Uri("https://api.twitter.com/1/statuses/update.json"); var client = GetClient(); client.Headers [HttpRequestHeader.Authorization] = OAuthAuthorizer.AuthorizeRequest(_oauthConfig, _oAuthToken, _oAuthTokenSecret, "POST", taskUri, content); try { client.UploadData(taskUri, "POST", Encoding.UTF8.GetBytes(content)); if (onRequestDone != null) { onRequestDone(); } } catch (WebException ex) { Console.WriteLine("Error while posting on Twitter. Message: " + ex.Message); } finally { client.Dispose(); } }
public void GetUserInfos(Action <TwitterUserInfo> onRequestDone) { var content = string.Format("user_id={0}&screen_name={1}", OAuthEncoder.PercentEncode(_userId), OAuthEncoder.PercentEncode(_screenName)); var taskUri = new Uri("https://api.twitter.com/1.1/users/show.json?" + content); var request = (HttpWebRequest)WebRequest.Create(taskUri); request.AutomaticDecompression = DecompressionMethods.GZip; request.Headers [HttpRequestHeader.Authorization] = OAuthAuthorizer.AuthorizeRequest(_oauthConfig, _oAuthToken, _oAuthTokenSecret, "GET", taskUri, null); TwitterUserInfo userInfos = null; request.BeginGetResponse(ar => { try { var response = (HttpWebResponse)request.EndGetResponse(ar); using (var stream = response.GetResponseStream()) { #if !WINDOWS var jentry = (JsonObject)JsonValue.Load(stream); userInfos = new TwitterUserInfo(); userInfos.Id = jentry["id_str"]; string name = jentry["name"]; if (name.Contains(" ")) { userInfos.Firstname = name.Substring(0, name.IndexOf(" ")); userInfos.Lastname = name.Substring(name.IndexOf(" ") + 1); } else { userInfos.Firstname = name; } userInfos.City = jentry["location"]; #endif } } catch (WebException we) { var response = we.Response as HttpWebResponse; if (response != null) { switch (response.StatusCode) { case HttpStatusCode.Unauthorized: // This is the case of sharing two keys break; } } Console.WriteLine(we); } finally{ if (onRequestDone != null) { onRequestDone(userInfos); } } }, null); }
private void SignRequest(WebRequest request) { var oauthHeader = OAuthAuthorizer.AuthorizeRequest(ConsumerKey, ConsumerSecretKey, "", "", request.Method, request.RequestUri, null); request.Headers.Add(HttpRequestHeader.Authorization, oauthHeader); }
public static List <Task <string> > DownloadAllJsonAsync(this IEnumerable <string> urls, TwitterAuth twitterAuth) { if (twitterAuth == null) { return(urls.DownloadAllAsync(ContentType.Json)); } return(urls.DownloadAllAsync(ContentType.Json, (webReq, uri) => { webReq.Headers[HttpRequestHeader.Authorization] = OAuthAuthorizer.AuthorizeRequest( twitterAuth.OAuthProvider, twitterAuth.AccessToken, twitterAuth.AccessTokenSecret, HttpMethod.Get, uri, null); })); }
public static string DownloadJsonFromUrl(this string url, TwitterAuth twitterAuth) { if (twitterAuth == null) { return(url.DownloadJsonFromUrl()); } var uri = new Uri(url); var webReq = (HttpWebRequest)WebRequest.Create(uri); webReq.Accept = ContentType.Json; webReq.Headers[HttpRequestHeader.Authorization] = OAuthAuthorizer.AuthorizeRequest( twitterAuth.OAuthProvider, twitterAuth.AccessToken, twitterAuth.AccessTokenSecret, HttpMethod.Get, uri, null); using (var webRes = webReq.GetResponse()) return(webRes.DownloadText()); }
public static string PostToUrl(TwitterAuthProvider oAuthProvider, string url, string accessToken, string accessTokenSecret, Dictionary <string, string> args, string acceptType = MimeTypes.Json) { var uri = new Uri(url); var webReq = (HttpWebRequest)WebRequest.Create(uri); webReq.Accept = acceptType; webReq.Method = HttpMethods.Post; string data = null; if (args != null) { var sb = new StringBuilder(); foreach (var arg in args) { if (sb.Length > 0) { sb.Append("&"); } sb.AppendFormat("{0}={1}", arg.Key, OAuthUtils.PercentEncode(arg.Value)); } data = sb.ToString(); } webReq.Headers[HttpRequestHeader.Authorization] = OAuthAuthorizer.AuthorizeRequest( oAuthProvider, accessToken, accessTokenSecret, "POST", uri, data); if (data != null) { webReq.ContentType = MimeTypes.FormUrlEncoded; using (var writer = new StreamWriter(webReq.GetRequestStream())) writer.Write(data); } using (var webRes = webReq.GetResponse()) { return(webRes.ReadToEnd()); } }
public void SetOAuthHeader(string url, string method, string consumerKey, string consumerSecretKey) { var baseAddress = Client.BaseAddress.ToString(); if (Client.BaseAddress.Host.Contains("runscope")) { baseAddress = baseAddress.Replace("payment-cmtapi-com-hqy5tesyhuwv.runscope.net", "payment.cmtapi.com"); } var oauthHeader = OAuthAuthorizer.AuthorizeRequest(consumerKey, consumerSecretKey, "", "", method, new Uri(baseAddress + url), null); if (Client.DefaultRequestHeaders.Authorization != null) { Client.DefaultRequestHeaders.Authorization = null; } Client.DefaultRequestHeaders.Add("Authorization", oauthHeader); }