Everyone seems to be all about Twitter so here’s some simple examples of how to update your Twitter status from a command line prompt, web server or simple html web site. These three examples require curl so install it if you don’t already have it. For these examples I’ll be using my Twitter user name ‘codytaylor1234’. My password is not ‘mypassword’ so make sure you put in your own information.
The easiest way to update your Twitter account is to just call curl from the command line with this command.
curl --basic --user "codytaylor1234:mypassword" --data-ascii
"status=This Twitter update brought to you by curl on the command line"
"http://twitter.com/statuses/update.json"
To update your Twitter status with PHP you are going to want to do the same sort of thing but with a bit more typing.
<?php
$username = 'codytaylor1234';
$password = 'mypassword';
$update = 'This Twitter update is from a php script using curl';
$url = 'http://twitter.com/statuses/update.json';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "$url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "status=".$update);
curl_setopt($ch, CURLOPT_USERPWD, $username.":".$password);
$result = curl_exec($ch);
curl_close($ch);
if($result)
echo 'success';
?>;
Since a cross-domain request in Javascript isn’t really an option we have to create a proxy using PHP in order to authenticate the user on the Twitter API. If anyone knows an easy way authenticate a Twitter user using only javascript I’d love to hear it. Anyway if we replace a small amount of code in the above example and put it in a file then we can use a simple ajax request to update our Twitter status. So the new PHP file would be:
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$update = $_POST['update'];
$url = 'http://twitter.com/statuses/update.json';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "$url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "status=".$update);
curl_setopt($ch, CURLOPT_USERPWD, $username.":".$password);
$result = curl_exec($ch);
curl_close($ch);
?>
For this example I called that php file ‘twitter-update.php’. Now that we have our simple proxy we can update our twitter status with a simple html form and a little ajax. I used the prototype framework for my javascript.
<script src="includes/prototype.js" type="text/javascript">
<script type='text/javascript'>
function update_twitter()
{
var param_string = "username="+$('username').value+"&password="+
$('password').value+"&update="+$('update').value;
alert(param_string);
var options = {
method: "post",
parameters: param_string,
onSuccess: function (xhr, Json) {
alert("Response received successfully.");
},
onFailure: function (xhr, Json) {
alert("Request was unsuccessful.");
}
};
var oRequest = new Ajax.Request("twitter-update.php", options);
}
</script>
Obviously this is for example purposes only and if you’re actually using it for production then you should edit it a lot. Now for the last little bit here’s the simple html form that starts it all.
User Name : <input type='text' id='username' value='codytaylor1234'><br>
Password : <input type='password' id='password' value='mypassword'><br>
New Status : <input type='text' id='update'
value='Twitter Update from html/javascript/php'><br>
<input type='button' value="Update Twitter" onclick='update_twitter();'>