How To Make A Twitter Bot With PHP In Five Minutes

There are quite a few uses I could think of for an automated Twitter bot that posts new tweets for you throughout the day. While this sounds like it would be a hard task it’s actually quite easy and a great project for anyone who wants to learn how to use the Twitter API within PHP. Lets get started.
Step 1 – Create your database.
When creating your database there are a number of things you may want to think of ahead of time. For the sake of making things easy I chose to tone down the code I use and show you how it works. We will create a simple table to store all of the random tweets in.
`id` INT(11) NOT NULL AUTO_INCREMENT,
`tweet` VARCHAR(140) DEFAULT NULL,
PRIMARY KEY (`id`)
)
Run that SQL and you should have a new “tweets” table in your chosen database. Notice how we limited the `tweet` field to 140 characters as well so we don’t have tweets that are too long to appear on Twitter.
Step 2 – Create the PHP to send the tweet.
The next step is to create a php script that will randomly select one of your tweets, and then send it to your Twitter account via Twitter’s API. While this sounds complicated, its very easy to do.
mysql_connect(“localhost”, “USERNAME”, “PASSWORD”) or die(‘Could not connect to database’);
mysql_select_db(“DATABASE”) or die(‘Could not select database’);
$result = mysql_query (“SELECT * FROM tweets ORDER BY RAND() LIMIT 1″);
while($row = mysql_fetch_array($result)){
$tweet = “$row[tweet]“;
sendTweet($tweet);
}
function sendTweet($msg){
$username = ‘TWITTER-USER-NAME’;
$password = ‘TWITTER-PASS’;
$url = ‘http://twitter.com/statuses/update.xml’;
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, “$url”);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, “status=$msg”);
curl_setopt($curl_handle, CURLOPT_USERPWD, “$username:$password”);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
if (empty($buffer)) {
echo ‘fail’;
} else {
echo ’success’;
}
}
?>
Not to bad right? Our custom sendTweet() function pretty much takes care of all the dirty work in sending the message to Twitter. Just make sure you edit the code with your password and username for Twitter, and the MySQL login. Once you have your database populated you are all good to go and test the script to see if it works. Just upload it, run it, and you should see either “fail” or “success” on your screen.
Step 3 – Automate with CRON.
After going to Twitter and checking your account to confirm everything is copacetic, it’s time to let your monster loose. Depending on what host you use, CRON access may or may not be available to you. Luckily for me I am hosted with MediaTemple so this is not a problem.
- Script Location - When using CRON you normally want to upload the file being run into a folder that nobody has access to from the web (root). After you have it in this location, just plug it into CRON with ‘php’ in front of it. Example: php /home/user/root/TwitterBot.php
- Set The Time - I don’t think I have ever used a control panel that required you to manually enter the time format… I’m pretty sure most people use cPanel which also has drop downs to select when you would like the script to run. I like to run my Twitter bot every 25 minuets or so to keep my Twitter account fresh.
That’s it! Not to hard right… If you have any in-depth questions on the code or need help, feel free to leave a comment. Also leave one if you have usage ideas, new features that could make the script better. As you can now see, this is a valuable tool to have in your chest.
UPDATE 5/8/2009
I have released a full blown version of the script packed with features and a complete backend GUI. This has proven to be a great Twitter marketing too! Unlike all the others, I support mine and its not a billion dollars. Check out the site for all the details.
The headline is not up to par.
When it comes to social media there is more to it then building backlinks, and getting some pages indexed in Google. Its about building authority, visibility, and a brand for your company. To use social media effectively (especially as a business) you need to make more valuable connections with your audience and then you can really reap the benefits of a social media campaign.



Out of all the people in the study, only 5% of them felt companies should not be in social media at all. On the other hand 8% of the subjects felt it would be ok for companies to have a presence in social media but not interact while 51% felt that social media marketing was ok if the interaction was somewhat limited. The remaining 34% of the study group felt companies should go full throttle with their social media strategies.
Social media is a great tool for business but time and time again I see businesses fail. Either because they just don’t know any better, or they have no real goals and plans for their social media campaign. Here’s 21 reasons why your business blog may fail to perform.
The other day I was going through some of the recent profiles on Twitter who added me as a friend. While picking through them I remember thinking “dam, I wish there was a tool to rank my followers.” So I made one. The
With all of the social news and bookmarking sites out there people tend to miss out on big traffic because they don’t pay attention to lesser known social networks. With a little work, I can tell you that