Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- byte[] bytearray = File.ReadAllBytes(filename);
- string media_data = Convert.ToBase64String(bytearray);
- var oauth_version = "1.0";
- var oauth_signature_method = "HMAC-SHA1";
- 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();
- var resource_url = "https://upload.twitter.com/1.1/media/upload.json";
- /*var baseFormat = "media_data={0}&oauth_consumer_key={1}&oauth_nonce={2}&oauth_signature_method={3}" +
- "&oauth_timestamp={4}&oauth_token={5}&oauth_version={6}";*/
- var baseFormat = "oauth_consumer_key={0}&oauth_nonce={1}&oauth_signature_method={2}" +
- "&oauth_timestamp={3}&oauth_token={4}&oauth_version={5}";
- var baseString = string.Format(baseFormat,
- //media_data,
- oauth_consumer_key,
- oauth_nonce,
- oauth_signature_method,
- oauth_timestamp,
- oauth_token,
- oauth_version//,
- //Uri.EscapeDataString(status)
- );
- baseString = string.Concat("POST&", Uri.EscapeDataString(resource_url),
- "&", Uri.EscapeDataString(baseString));
- Console.WriteLine(baseString);
- var compositeKey = string.Concat(Uri.EscapeDataString(oauth_consumer_secret),
- "&", Uri.EscapeDataString(oauth_token_secret));
- string oauth_signature;
- using (HMACSHA1 hasher = new HMACSHA1(ASCIIEncoding.ASCII.GetBytes(compositeKey)))
- {
- oauth_signature = Convert.ToBase64String(
- hasher.ComputeHash(ASCIIEncoding.ASCII.GetBytes(baseString)));
- }
- 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}\"";
- 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)
- );
- Console.WriteLine(authHeader);
- var postBody = "media_data=" + Convert.ToBase64String(bytearray);
- ServicePointManager.Expect100Continue = false;
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(resource_url);
- request.Headers.Add("Authorization", authHeader);
- request.Method = "POST";
- request.ContentType = "multipart/form-data";
- using (Stream stream = request.GetRequestStream())
- {
- byte[] content = ASCIIEncoding.ASCII.GetBytes(postBody);
- stream.Write(content, 0, content.Length);
- }
- WebResponse response = request.GetResponse();
- Console.WriteLine(((HttpWebResponse)response).StatusDescription);
- Stream dataStream = response.GetResponseStream();
- StreamReader reader = new StreamReader(dataStream);
- string responseFromServer = reader.ReadToEnd();
- Console.WriteLine(responseFromServer);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement