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

PHP Extension
<?php

include("chilkat.php");

$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 CkJsonObject();
$success = $jsonToken->LoadFile('qa_data/tokens/twitter.json');

$http = new CkHttp();

//  Provide the OAuth 1.0a credentials:
$http->put_OAuth1(true);
$http->put_OAuthConsumerKey('TWITTER_CONSUMER_KEY');
$http->put_OAuthConsumerSecret('TWITTER_CONSUMER_SECRET');
$http->put_OAuthToken($jsonToken->stringOf('oauth_token'));
$http->put_OAuthTokenSecret($jsonToken->stringOf('oauth_token_secret'));

$req = new CkHttpRequest();
$req->put_HttpVerb('POST');
$req->put_ContentType('multipart/form-data');
$req->put_Path('/1.1/media/upload.json');

$req->AddHeader('Expect','100-continue');

//  Add a JPEG image file to the upload.
$fac = new CkFileAccess();
$jpgBytes = new CkByteData();
$success = $fac->ReadEntireFile('qa_data/jpg/starfish.jpg',$jpgBytes);
$req->AddBytesForUpload('media','starfish.jpg',$jpgBytes);

$resp = new CkHttpResponse();
$success = $http->HttpSReq('upload.twitter.com',443,true,$req,$resp);
if ($success == false) {
    print $http->lastErrorText() . "\n";
    exit;
}

$jsonResponse = new CkJsonObject();
$jsonResponse->put_EmitCompact(false);
$jsonResponse->Load($resp->bodyStr());

if ($resp->get_StatusCode() != 200) {
    print $jsonResponse->emit() . "\n";
    exit;
}

//  Show the successful response:
print $jsonResponse->emit() . "\n";
print 'Success.' . "\n";

//  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:
print 'media_id_string = ' . $jsonResponse->stringOf('media_id_string') . "\n";
print 'size = ' . $jsonResponse->IntOf('size') . "\n";
print 'image_type = ' . $jsonResponse->stringOf('image.image_type') . "\n";
print 'height/width = ' . $jsonResponse->IntOf('image.w') . ',' . $jsonResponse->IntOf('image.h') . "\n";

?>