Sample code for 30+ languages & platforms
PowerShell

Twitter - Tweet with Multiple Images

Example to post a status update with multiple associated images/photos (or videos).

Chilkat PowerShell Downloads

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

$success = $false

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

# ----------------------------------------------------------------------
# This initial setup, which involves setting the OAuth1 properties and connecting
# to api.twitter.com, is only required once at the beginning.  Once connected, the same
# object instance may be re-used, and if necessary, it will automatically reconnect
# as needed.

# Assume we've previously obtained an access token and saved it to a JSON file..
$json = New-Object Chilkat.JsonObject
$success = $json.LoadFile("qa_data/tokens/twitter.json")

$rest = New-Object Chilkat.Rest
$oauth1 = New-Object Chilkat.OAuth1

$oauth1.ConsumerKey = "TWITTER_CONSUMER_KEY"
$oauth1.ConsumerSecret = "TWITTER_CONSUMER_SECRET"
$oauth1.Token = $json.StringOf("oauth_token")
$oauth1.TokenSecret = $json.StringOf("oauth_token_secret")
$oauth1.SignatureMethod = "HMAC-SHA1"
$oauth1.GenNonce(16)

$rest.SetAuthOAuth1($oauth1,$false)

$bAutoReconnect = $true
$success = $rest.Connect("api.twitter.com",443,$true,$bAutoReconnect)
if ($success -ne $true) {
    $($rest.LastErrorText)
    exit
}

# This ends the initial setup...
# ----------------------------------------------------------------------

$tweetContent = "This is a test tweet with multiple images."

# Send a tweet...
$rest.ClearAllQueryParams()
$rest.AddQueryParam("status",$tweetContent)

# Add list of comma separated media_ids to associate with the Tweet. 
# You may include up to 4 photos or 1 animated GIF or 1 video in a Tweet.
# The image needs to have been previously uploaded.  The upload response gave us
# the media ID we'll use to associate this tweet with the image (or video)
# See Twitter Upload Media for sample code.
$rest.AddQueryParam("media_ids","793137045996646400,793192201392041984")

$resp = $rest.FullRequestFormUrlEncoded("POST","/1.1/statuses/update.json")
if ($rest.LastMethodSuccess -ne $true) {
    $($rest.LastErrorText)
    exit
}

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

if ($rest.ResponseStatusCode -ne 200) {
    $($jsonResponse.Emit())
    exit
}

# Show the successful response:
$($jsonResponse.Emit())
$("Success.")