private string OAuthPostRequest(string url, string postData) { string responseString = string.Empty; WebResponse response = null; try { Uri uri = new Uri(url); string outURL = string.Empty; string outQueryString = string.Empty; OAuthParameters p = new OAuthParameters(); p.ConsumerKey = m_oAuthConsumerKey; p.HttpMethod = HttpMethod.POST; p.ConsumerSecret = m_oAuthConsumerSecret; p.Nonce = GenerateOAuthNonce(); p.Status = postData; p.SignatureType = SignatureTypes.HMACSHA1; p.Timestamp = GenerateOAuthTimestamp(); p.Token = m_oAuthAccessToken; p.TokenSecret = m_oAuthAccessTokenSecret; p.Uri = new Uri(url); string sig = this.GenerateSignature(p, out outURL, out outQueryString); outQueryString += "&oauth_signature=" + Common.UrlEncode(sig); if (outQueryString.Length > 0) { outURL += "?"; } string newURL = outURL + outQueryString; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(newURL); request.Method = "POST"; request.ServicePoint.Expect100Continue = false; request.ContentLength = 0; request.ContentType = "application/x-www-form-urlencoded"; //request.Headers.Add("content-length", postData.Length.ToString()); response = request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream())) { responseString = reader.ReadToEnd(); } if (response.Headers["X-RateLimit-Limit"] != null) { int limit = int.Parse(response.Headers["X-RateLimit-Limit"]); int remaining = int.Parse(response.Headers["X-RateLimit-Remaining"]); long resetTime = long.Parse(response.Headers["X-RateLimit-Reset"]); m_rateLimit = new RateLimit(limit, remaining, resetTime); } } catch (Exception ex) { responseString = "***ERROR :: " + ex.Message; } return responseString; }
private string OAuthWebGetToken(string callbackURL) { string responseString = string.Empty; try { string outURL = string.Empty; string outQueryString = string.Empty; OAuthParameters p = new OAuthParameters(); p.ConsumerKey = m_oAuthConsumerKey; p.HttpMethod = HttpMethod.GET; p.ConsumerSecret = m_oAuthConsumerSecret; p.Nonce = GenerateOAuthNonce(); p.SignatureType = SignatureTypes.HMACSHA1; p.Timestamp = GenerateOAuthTimestamp(); p.Uri = new Uri("http://api.twitter.com/oauth/request_token"); string sig = this.GenerateSignature(p, out outURL, out outQueryString); outQueryString += "&oauth_signature=" + Common.UrlEncode(sig); if (outQueryString.Length > 0) outURL += "?"; string newURL = outURL + outQueryString + "&" + callbackURL; return newURL; } catch (Exception ex) { responseString = "***ERROR :: " + ex.Message; } return responseString; }
private string OAuthGetToken(string PIN) { string responseString = string.Empty; try { string outURL = string.Empty; string outQueryString = string.Empty; OAuthParameters p = new OAuthParameters(); p.ConsumerKey = m_oAuthConsumerKey; p.HttpMethod = HttpMethod.GET; p.ConsumerSecret = m_oAuthConsumerSecret; p.Nonce = GenerateOAuthNonce(); p.SignatureType = SignatureTypes.HMACSHA1; p.Timestamp = GenerateOAuthTimestamp(); if (!string.IsNullOrEmpty(PIN)) { p.Token = m_oAuthRequestToken; p.TokenSecret = m_oAuthRequestTokenSecret; p.PIN = PIN; p.Uri = new Uri("http://api.twitter.com/oauth/access_token"); } else { p.Uri = new Uri("http://api.twitter.com/oauth/request_token"); } string sig = this.GenerateSignature(p, out outURL, out outQueryString); outQueryString += "&oauth_signature=" + Common.UrlEncode(sig); if (outQueryString.Length > 0) outURL += "?"; string newURL = outURL + outQueryString; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(newURL); request.Method = "GET"; request.ServicePoint.Expect100Continue = false; request.ContentType = "application/x-www-form-urlencoded"; using (WebResponse response = request.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream())) { responseString = reader.ReadToEnd(); } } if (!string.IsNullOrEmpty(responseString)) { Dictionary<string, string> nv = Common.ParseQueryString(responseString); if (nv["oauth_token"] != null) { if (string.IsNullOrEmpty(PIN)) { m_oAuthRequestToken = nv["oauth_token"]; responseString = "http://api.twitter.com/oauth/authorize?oauth_token=" + m_oAuthRequestToken; } else { m_oAuthAccessToken = nv["oauth_token"]; m_userName = nv["screen_name"]; responseString = m_oAuthAccessToken; } } if (nv["oauth_token_secret"] != null) { if (string.IsNullOrEmpty(PIN)) m_oAuthRequestTokenSecret = nv["oauth_token_secret"]; else m_oAuthAccessTokenSecret = nv["oauth_token_secret"]; } } } catch (Exception ex) { responseString = "***ERROR :: " + ex.Message; } return responseString; }