Sample code for 30+ languages & platforms
PowerShell

Emoji Tweet

Demonstrates posting a status update that includes an emoji character.

This example is deprecated and no longer valid.

Chilkat PowerShell Downloads

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

$success = $false

# This 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...
# ----------------------------------------------------------------------

# For this example, I've pre-created a text file containing two emoji
# characters (the "ghost" emoji, and a "face savouring delicious food" emoji).  
# This text file was saved using the utf-8 encoding.

# The utf-8 bytes for the ghost emoji are 0x9f 0x91 0xbb.  (Note: This is the utf-8
# representation that does not use surrogate pairs.)
# 
# The utf-8 bytes for the "face savouring delicious food" emoji are \xF0\x9F\x98\x8B.

$sbText = New-Object Chilkat.StringBuilder
$sbText.LoadFile("qa_data/txt/ghost_emoji.txt","utf-8")
$sbText.Prepend("Test tweet using two emoji chars: ")

# Send a tweet...
$rest.ClearAllQueryParams()
$rest.AddQueryParam("status",$sbText.GetAsString())
$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.")