// Llaves de acceso de la aplicación Twitter
var oauth_token = “xxxxxxxxxxxx”;
var oauth_token_secret = “xxxxxxxxxxxxxx”;
var oauth_consumer_key = “xxxxxxxxxx”;
var oauth_consumer_secret = “xxxxxxxxxxxx”;
// Caracteristicas de la implementacion OAuth
var oauth_version = “1.0”;
var oauth_signature_method = “HMAC-SHA1”;
var follow = “3904317398”;
// Detalles del mensaje de la API
var mensaje = textBox_post.Text;
//var resource_url = "https://api.twitter.com/1.1/statuses/update.json";
var resource_url = "https://stream.twitter.com/1.1/statuses/filter.json?track=pruebairis";
var request_type = "POST";
// Detalles de creación de la cabecera de autentificación
// Creamos el oauth_nonce
var oauth_nonce = CreateNonce();
// Creamos el oauth_timestamp
var oauth_timestamp = CreateTimestamp();
// Creamos el oauth_signature
string oauth_signature = CreateOAuthSignature(oauth_consumer_key, oauth_nonce, oauth_signature_method,
oauth_timestamp, oauth_token, oauth_version, mensaje, resource_url, request_type, oauth_consumer_secret, oauth_token_secret);
// Construimos la cabecera de autentificación combinando todos los valores
var headerFormat = "OAuth oauth_consumer_key=\"{0}\", oauth_nonce=\"{1}\", oauth_signature=\"{2}\", " +
"oauth_signature_method=\"{3}\", oauth_timestamp=\"{4}\", " +
"oauth_token=\"{5}\", oauth_version=\"{6}\", follow=\"{7}";
var authHeader = string.Format(headerFormat,
Uri.EscapeDataString(oauth_consumer_key),
Uri.EscapeDataString(oauth_nonce),
Uri.EscapeDataString(oauth_signature),
Uri.EscapeDataString(oauth_signature_method),
Uri.EscapeDataString(oauth_timestamp),
Uri.EscapeDataString(oauth_token),
Uri.EscapeDataString(oauth_version)
);
// Realizamos la petición HTTP con el método POST
var postdata = "status=" + URLEncode(mensaje);
ServicePointManager.Expect100Continue = false;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(resource_url);
request.Headers.Add("Authorization", authHeader);
request.Method = request_type;
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
using (Stream stream = request.GetRequestStream())
{
byte[] content = ASCIIEncoding.ASCII.GetBytes(postdata);
stream.Write(content, 0, content.Length);
Console.WriteLine("conten "+content);
}
WebResponse response = request.GetResponse();//"AQUI ROMPE EL RROR 401"
StreamReader sr = new StreamReader(response.GetResponseStream());
string json = sr.ReadToEnd();
sr.Close();
response.Close();
textBox_post.Text = json;