Sample code for 30+ languages & platforms
PowerShell 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 PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$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..
$jsonToken = New-Object Chilkat.JsonObject
$success = $jsonToken.LoadFile("qa_data/tokens/twitter.json")

$http = New-Object 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")

$req = New-Object 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.
$fac = New-Object Chilkat.FileAccess

$jpgBytes = $fac.ReadEntireFile("qa_data/jpg/starfish.jpg")
$req.AddBytesForUpload("media","starfish.jpg",$jpgBytes)

$resp = New-Object Chilkat.HttpResponse
$success = $http.HttpSReq("upload.twitter.com",443,$true,$req,$resp)
if ($success -eq $false) {
    $($http.LastErrorText)
    exit
}

$jsonResponse = New-Object Chilkat.JsonObject
$jsonResponse.EmitCompact = $false
$jsonResponse.Load($resp.BodyStr)

if ($resp.StatusCode -ne 200) {
    $($jsonResponse.Emit())
    exit
}

#  Show the successful response:
$($jsonResponse.Emit())
$("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:
$("media_id_string = " + $jsonResponse.StringOf("media_id_string"))
$("size = " + $jsonResponse.IntOf("size"))
$("image_type = " + $jsonResponse.StringOf("image.image_type"))
$("height/width = " + $jsonResponse.IntOf("image.w") + "," + $jsonResponse.IntOf("image.h"))