Sample code for 30+ languages & platforms
.NET Core C# Requires Chilkat v11.0.0+

Upload Media to Twitter

Demonstrates uploading image or video files to Twitter. After uploading, the media_id can be used to attach the uploaded media to a tweet.

This example is deprecated and no longer valid.

Chilkat .NET Core C# Downloads

.NET Core C#
bool success = false;

//  It requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

//  Assume we've previously obtained an access token and saved it to a JSON file..
Chilkat.JsonObject jsonToken = new Chilkat.JsonObject();
success = jsonToken.LoadFile("qa_data/tokens/twitter.json");

Chilkat.Http http = new Chilkat.Http();

//  Provide the OAuth 1.0a credentials:
http.OAuth1 = true;
http.OAuthConsumerKey = "TWITTER_CONSUMER_KEY";
http.OAuthConsumerSecret = "TWITTER_CONSUMER_SECRET";
http.OAuthToken = jsonToken.StringOf("oauth_token");
http.OAuthTokenSecret = jsonToken.StringOf("oauth_token_secret");

Chilkat.HttpRequest req = new Chilkat.HttpRequest();
req.HttpVerb = "POST";
req.ContentType = "multipart/form-data";
req.Path = "/1.1/media/upload.json";

req.AddHeader("Expect","100-continue");

//  Add a JPEG image file to the upload.
Chilkat.FileAccess fac = new Chilkat.FileAccess();
byte[] jpgBytes = null;
jpgBytes = fac.ReadEntireFile("qa_data/jpg/starfish.jpg");
req.AddBytesForUpload("media","starfish.jpg",jpgBytes);

Chilkat.HttpResponse resp = new Chilkat.HttpResponse();
success = http.HttpSReq("upload.twitter.com",443,true,req,resp);
if (success == false) {
    Debug.WriteLine(http.LastErrorText);
    return;
}

Chilkat.JsonObject jsonResponse = new Chilkat.JsonObject();
jsonResponse.EmitCompact = false;
jsonResponse.Load(resp.BodyStr);

if (resp.StatusCode != 200) {
    Debug.WriteLine(jsonResponse.Emit());
    return;
}

//  Show the successful response:
Debug.WriteLine(jsonResponse.Emit());
Debug.WriteLine("Success.");

//  A successful JSON response looks like this:

//  	{
//  	  "media_id": 793137045996646400,
//  	  "media_id_string": "793137045996646400",
//  	  "size": 6229,
//  	  "expires_after_secs": 86400,
//  	  "image": {
//  	    "image_type": "image\/jpeg",
//  	    "w": 120,
//  	    "h": 120
//  	  }
//  	}
//  

//  Get the information from the JSON:
Debug.WriteLine("media_id_string = " + jsonResponse.StringOf("media_id_string"));
Debug.WriteLine("size = " + Convert.ToString(jsonResponse.IntOf("size")));
Debug.WriteLine("image_type = " + jsonResponse.StringOf("image.image_type"));
Debug.WriteLine("height/width = " + Convert.ToString(jsonResponse.IntOf("image.w")) + "," + Convert.ToString(jsonResponse.IntOf("image.h")));