Advertisement
Guest User

Twitter Image Upload (not working)

a guest
May 6th, 2015
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.26 KB | None | 0 0
  1. byte[] bytearray = File.ReadAllBytes(filename);
  2.             string media_data = Convert.ToBase64String(bytearray);
  3.  
  4.             var oauth_version = "1.0";
  5.             var oauth_signature_method = "HMAC-SHA1";
  6.             var oauth_nonce = Convert.ToBase64String(
  7.                                               new ASCIIEncoding().GetBytes(
  8.                                                    DateTime.Now.Ticks.ToString()));
  9.             var timeSpan = DateTime.UtcNow
  10.                                               - new DateTime(1970, 1, 1, 0, 0, 0, 0,
  11.                                                    DateTimeKind.Utc);
  12.             var oauth_timestamp = Convert.ToInt64(timeSpan.TotalSeconds).ToString();
  13.             var resource_url = "https://upload.twitter.com/1.1/media/upload.json";
  14.  
  15.             /*var baseFormat = "media_data={0}&oauth_consumer_key={1}&oauth_nonce={2}&oauth_signature_method={3}" +
  16.             "&oauth_timestamp={4}&oauth_token={5}&oauth_version={6}";*/
  17.  
  18.             var baseFormat = "oauth_consumer_key={0}&oauth_nonce={1}&oauth_signature_method={2}" +
  19.             "&oauth_timestamp={3}&oauth_token={4}&oauth_version={5}";
  20.  
  21.             var baseString = string.Format(baseFormat,
  22.                                         //media_data,
  23.                                         oauth_consumer_key,
  24.                                         oauth_nonce,
  25.                                         oauth_signature_method,
  26.                                         oauth_timestamp,
  27.                                         oauth_token,
  28.                                         oauth_version//,
  29.                                         //Uri.EscapeDataString(status)
  30.                                         );
  31.  
  32.             baseString = string.Concat("POST&", Uri.EscapeDataString(resource_url),
  33.                          "&", Uri.EscapeDataString(baseString));
  34.  
  35.             Console.WriteLine(baseString);
  36.  
  37.             var compositeKey = string.Concat(Uri.EscapeDataString(oauth_consumer_secret),
  38.                     "&", Uri.EscapeDataString(oauth_token_secret));
  39.  
  40.             string oauth_signature;
  41.             using (HMACSHA1 hasher = new HMACSHA1(ASCIIEncoding.ASCII.GetBytes(compositeKey)))
  42.             {
  43.                 oauth_signature = Convert.ToBase64String(
  44.                     hasher.ComputeHash(ASCIIEncoding.ASCII.GetBytes(baseString)));
  45.             }
  46.  
  47.             var headerFormat = "OAuth oauth_consumer_key=\"{0}\", oauth_nonce=\"{1}\", " +
  48.                "oauth_signature=\"{2}\", oauth_signature_method=\"{3}\", " +
  49.                "oauth_timestamp=\"{4}\", oauth_token=\"{5}\", " +
  50.                "oauth_version=\"{6}\"";
  51.  
  52.             var authHeader = string.Format(headerFormat,
  53.                                     Uri.EscapeDataString(oauth_consumer_key),
  54.                                     Uri.EscapeDataString(oauth_nonce),
  55.                                     Uri.EscapeDataString(oauth_signature),
  56.                                     Uri.EscapeDataString(oauth_signature_method),
  57.                                     Uri.EscapeDataString(oauth_timestamp),
  58.                                     Uri.EscapeDataString(oauth_token),
  59.                                     Uri.EscapeDataString(oauth_version)
  60.                             );
  61.  
  62.             Console.WriteLine(authHeader);
  63.  
  64.             var postBody = "media_data=" + Convert.ToBase64String(bytearray);
  65.  
  66.             ServicePointManager.Expect100Continue = false;
  67.  
  68.             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(resource_url);
  69.             request.Headers.Add("Authorization", authHeader);
  70.             request.Method = "POST";
  71.             request.ContentType = "multipart/form-data";
  72.             using (Stream stream = request.GetRequestStream())
  73.             {
  74.                 byte[] content = ASCIIEncoding.ASCII.GetBytes(postBody);
  75.                 stream.Write(content, 0, content.Length);
  76.             }
  77.  
  78.             WebResponse response = request.GetResponse();
  79.             Console.WriteLine(((HttpWebResponse)response).StatusDescription);
  80.             Stream dataStream = response.GetResponseStream();
  81.             StreamReader reader = new StreamReader(dataStream);
  82.             string responseFromServer = reader.ReadToEnd();
  83.             Console.WriteLine(responseFromServer);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement