public OAuthRequest TwitterStatusUpdateRequest( String status, String access_token, String access_token_secret, String consumer_key, String consumer_secret) { System.Net.ServicePointManager.Expect100Continue = false; if (String.IsNullOrEmpty(status)) return null; String suffix = "..."; if (status.Length > MAX_STATUS_LENGTH) status = status.Substring(0, MAX_STATUS_LENGTH - suffix.Length) + suffix; OAuthRequest orequest = new OAuthRequest(plugin, "http://api.twitter.com/1/statuses/update.json"); orequest.Method = HTTPMethod.POST; orequest.request.ContentType = "application/x-www-form-urlencoded"; /* Set the Post Data */ byte[] data = Encoding.UTF8.GetBytes("status=" + OAuthRequest.UrlEncode(Encoding.UTF8.GetBytes(status))); // Parameters required by the Twitter OAuth Protocol orequest.parameters.Add(new KeyValuePair<string, string>("oauth_consumer_key", consumer_key)); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_nonce", Guid.NewGuid().ToString("N"))); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_signature_method", "HMAC-SHA1")); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_token", access_token)); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_timestamp", ((long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds).ToString())); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_version", "1.0")); orequest.parameters.Add(new KeyValuePair<string, string>("status", OAuthRequest.UrlEncode(Encoding.UTF8.GetBytes(status)))); // Compute and add the signature String signature = orequest.Signature(consumer_secret, access_token_secret); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_signature", OAuthRequest.UrlEncode(signature))); // Add the OAuth authentication header String OAuthHeader = orequest.Header(); orequest.request.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequired; orequest.request.Headers["Authorization"] = OAuthHeader; // Add the POST body orequest.request.ContentLength = data.Length; Stream sout = orequest.request.GetRequestStream(); sout.Write(data, 0, data.Length); sout.Close(); return orequest; }
public OAuthRequest TwitterRequestTokenRequest() { OAuthRequest orequest = new OAuthRequest(plugin, "http://api.twitter.com/oauth/request_token"); orequest.Method = HTTPMethod.POST; orequest.request.ContentLength = 0; // Parameters required by the Twitter OAuth Protocol orequest.parameters.Add(new KeyValuePair<string, string>("oauth_callback", OAuthRequest.UrlEncode("oob"))); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_consumer_key", twitter_consumer_key)); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_nonce", Guid.NewGuid().ToString("N"))); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_timestamp", ((long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds).ToString())); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_signature_method", "HMAC-SHA1")); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_version", "1.0")); // Compute and add the signature String signature = orequest.Signature(twitter_consumer_secret, null); orequest.parameters.Add(new KeyValuePair<string, string>("oauth_signature", OAuthRequest.UrlEncode(signature))); // Add the OAuth authentication header String OAuthHeader = orequest.Header(); orequest.request.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequired; orequest.request.Headers["Authorization"] = OAuthHeader; return orequest; }