I too face the same problem. Below is my code. Someone please help.
string endpoint = "https://api.twitter.com/1.1/statuses/update.json";
string user_name = ".....";
var oauth_token = ".....";
var oauth_token_secret = ".....";
var oauth_consumer_key = ".....";
var oauth_consumer_secret = ".....";
var oauth_version = "1.0";
var oauth_signature_method = "HMAC-SHA1";
var include_entities = "true";
var status = "Hello World!";
var oauth_nonce = Convert.ToBase64String(new ASCIIEncoding().GetBytes(DateTime.Now.Ticks.ToString()));
var timeSpan = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
var oauth_timestamp = Convert.ToInt64(timeSpan.TotalSeconds).ToString();
string parameterStringFormat = "include_entities={0}&oauth_consumer_key={1}&oauth_nonce={2}&oauth_signature_method={3}&oauth_timestamp={4}&oauth_token={5}&oauth_version={6}&status={7}";
string parameterString = string.Format(Uri.EscapeDataString(parameterStringFormat),
Uri.EscapeDataString(include_entities), Uri.EscapeDataString(oauth_consumer_key),
Uri.EscapeDataString(oauth_nonce), Uri.EscapeDataString(oauth_signature_method),
Uri.EscapeDataString(oauth_timestamp), Uri.EscapeDataString(oauth_token),
Uri.EscapeDataString(oauth_version), Uri.EscapeDataString(status));
string SignatureBaseStringFormat = "{0}&{1}&{2}";
string SignatureBaseString = string.Format(SignatureBaseStringFormat, "POST", Uri.EscapeDataString(endpoint),
Uri.EscapeDataString(parameterString));
string signingKeyFormat = "{0}&{1}";
string signingKey = string.Format(signingKeyFormat, Uri.EscapeDataString(oauth_consumer_secret),
Uri.EscapeDataString(oauth_token_secret));
string oauth_signature;
using (HMACSHA1 hasher = new HMACSHA1(ASCIIEncoding.ASCII.GetBytes(signingKey)))
{
oauth_signature = Convert.ToBase64String(hasher.ComputeHash(ASCIIEncoding.ASCII.GetBytes(SignatureBaseString)));
}
string headerFormat = "OAuth oauth_consumer_key=\"{0}\", oauth_nonce=\"{1}\", oauth_signature=\"{2}\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"{3}\", oauth_token=\"{4}\", oauth_version=\"1.0\", user_name=\"itkt_raja\"";
var postBody = Uri.EscapeDataString("Hello World! This is the first tweet from my Custom Twitter App");
var authHeader = string.Format(headerFormat,
Uri.EscapeDataString(oauth_consumer_key),
Uri.EscapeDataString(oauth_nonce),
Uri.EscapeDataString(oauth_signature),
Uri.EscapeDataString(oauth_timestamp),
Uri.EscapeDataString(oauth_token)
);
// make the request
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endpoint);
request.Headers.Add("Authorization", authHeader);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Accept = "*/*";
request.KeepAlive = false;
request.UserAgent = "OAuth gem v0.4.4";
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
request.Host = "api.twitter.com";
using (Stream stream = request.GetRequestStream())
{
byte[] content = ASCIIEncoding.ASCII.GetBytes(postBody);
stream.Write(content, 0, content.Length);
}
WebResponse authResponse = request.GetResponse();
// deserialize into an object
TwitAuthenticateResponse twitAuthResponse;
using (authResponse)
{
using (var reader = new StreamReader(authResponse.GetResponseStream()))
{
var objectText = reader.ReadToEnd();
twitAuthResponse = JsonConvert.DeserializeObject<TwitAuthenticateResponse>(objectText);
}
}