
10 code snippets to interact with Twitter
Often called a revolution, Twitter is a very easy and cool way to communicate and promote your blog or service. In this article, I have compiled 10 very useful code snippets to interact with Twitter in your web dev projects.
1 – Autofollow script (PHP)
This code allow you to automatically follow user who have tweeted about a specific term. For example, if you want to follow all users who tweeted about php, simply give it as a value to the $term variable on line 7.
<?php
// Twitter Auto-follow Script by Dave Stevens - http://davestevens.co.uk
$user = "";
$pass = "";
$term = "";
$userApiUrl = "http://twitter.com/statuses/friends.json";
$ch = curl_init($userApiUrl);
curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$apiresponse = curl_exec($ch);
curl_close($ch);
$followed = array();
if ($apiresponse) {
$json = json_decode($apiresponse);
if ($json != null) {
foreach ($json as $u) {
$followed[] = $u->name;
}
}
}
$userApiUrl = "http://search.twitter.com/search.json?q=" . $term . "&rpp=100";
$ch = curl_init($userApiUrl);
curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$apiresponse = curl_exec($ch);
curl_close($ch);
if ($apiresponse) {
$results = json_decode($apiresponse);
$count = 20;
if ($results != null) {
$resultsArr = $results->results;
if (is_array($resultsArr)) {
foreach ($resultsArr as $result) {
$from_user = $result->from_user;
if (!in_array($from_user,$followed)) {
$ch = curl_init("http://twitter.com/friendships/create/" . $from_user . ".json");
curl_setopt($ch, CURLOPT_USERPWD, $user.":".$pass);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"follow=true");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$apiresponse = curl_exec($ch);
if ($apiresponse) {
$response = json_decode($apiresponse);
if ($response != null) {
if (property_exists($response,"following")) {
if ($response->following === true) {
echo "Now following " . $response->screen_name . "\n";
} else {
echo "Couldn't follow " . $response->screen_name . "\n";
}
} else {
echo "Follow limit exceeded, skipped " . $from_user . "\n";
}
}
}
curl_close($ch);
} else {
echo "Already following " . $from_user . "\n";
}
}
}
}
}
?>
Source : http://snipplr.com/view/17595/twitter-autofollow-php-script/
2 – Get the number of follower in full text (PHP)
When you have a website or blog and use Twitter, it can be cool to display how many followers you have. To do so, simply use the short code snippet above.
Note that if you want to integrate the same code into WordPress, using caching, Rarst have written a nice code that you can get using the link after the snippets (Rarst code is in the comments, so scroll down a bit)
<?php
$xml=file_get_contents('http://twitter.com/users/show.xml?screen_name=catswhocode');
if (preg_match('/followers_count>(.*)</',$xml,$match)!=0) {
$tw['count'] = $match[1];
}
echo $tw['count'];
?>
Source : Rarst on http://www.wprecipes.com/display-the-total-number-of-your-twitter-followers-on-your-wordpress-blog
3 – View who doesn’t follow you (Python)
Some people don’t like the idea of following people who don’t follow you back. If you recognized yourself in this statement, there’s a huge amount of chances that you’ll enjoy the following Python code snippet.
Simply type your Twitter username and password on line 4 and call the file using the Python interpreter.
import twitter, sys, getpass, os
def call_api(username,password):
api = twitter.Api(username,password)
friends = api.GetFriends()
followers = api.GetFollowers()
heathens = filter(lambda x: x not in followers,friends)
print "There are %i people you follow who do not follow you:" % len(heathens)
for heathen in heathens:
print heathen.screen_name
if __name__ == "__main__":
password = getpass.getpass()
call_api(sys.argv[1], password)
Source : http://blog.davidziegler.net/post/107429458/see-which-twitterers-don-t-follow-you-back-in-less-than
4 – Update your Twitter status…using Vim
The Vim editor is one of the most powerful and complete text editor available. This command, allowing you to update your Twitter status, is just one more proof.
Oh and don’t forget to check out our list of 100 Vim commands that every developer should know
command -range Twitter, write ++enc=UTF-8 !curl --data-urlencode status@- --netrc --no-remote-name http://twitter.com/statuses/update.xml
Source : http://snipplr.com/view/16550/vim-command-to-post-to-twitter/
5 – Get Your Most Recent Twitter Status (PHP)
A simple PHP function that get your latest Twitter status so you can display it on your blog or website.
<?php
function get_status($twitter_id, $hyperlinks = true) {
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://twitter.com/statuses/user_timeline/$twitter_id.xml?count=1");
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$src = curl_exec($c);
curl_close($c);
preg_match('/<text>(.*)<\/text>/', $src, $m);
$status = htmlentities($m[1]);
if( $hyperlinks ) $status = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\">\\0</a>", $status);
return($status);
}
?>
Source : http://abeautifulsite.net/notebook/75
6 – Twitter email grabber (PHP)
You know it, you sould never type your email adress on the Internet. This include Twitter. Due to the site popularity, lots of spammers created scripts to grab email adresses from the site. How can they do that? Like that:
<?php
$file = file_get_contents("http://search.twitter.com/search?q=gmail.com+OR+hotmail.com++OR+%22email+me%22");
$file = strip_tags($file);
preg_match_all(
"([a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b)siU",
$file,
$matches);
print_r($matches);
?>
Source : http://www.fromzerotoseo.com/twitter-email-grabber/
7 – Backup your tweets (Ruby)
Are you a Ruby programmer who always wanted to be able to keep a backup of his tweets? If yes, you’ll love this snippet.
#! /usr/bin/ruby
require 'rubygems'
require 'json'
require 'net/http'
require 'uri'
class TwitterBackup
def backup(username)
url = URI::parse('http://twitter.com')
page = 1
loop do
req = Net::HTTP::Get.new("/statuses/user_timeline.json?screen_name=#{username}&count=200&page=#{page}")
res = Net::HTTP.start(url.host, url.port) {|http| http.request(req) }
if res.body.length > 2
process_response(JSON.parse(res.body))
else
break
end
page += 1
end
end
protected
def process_response(response_json)
response_json.each do |tweet|
puts "#{Time.parse(tweet['created_at']).strftime("%A %d %B %Y at %I:%M%p")}, #{tweet['text']}, #{tweet['source']}, #{tweet['in_reply_to_screen_name']}"
end
end
end
TwitterBackup.new.backup(ARGV[0])
To run, save as twitterbackup.rb and launch from the command line:
ruby twitterbackup.rb yourtwittername
Source : http://snipplr.com/view.php?codeview&id=19107
8 – Timeline function (PHP)
Since Twitter became very popular, I started to hear many people saying that they absolutely love how Twitter display time informations: 1 hour ago, about 7 days ago, less than a minute ago, etc. This is what the function below do.
function timespan($time1, $time2 = NULL, $output = 'years,months,weeks,days,hours,minutes,seconds')
{
$output = preg_split('/[^a-z]+/', strtolower((string) $output));
if (empty($output))
return FALSE;
extract(array_flip($output), EXTR_SKIP);
$time1 = max(0, (int) $time1);
$time2 = empty($time2) ? time() : max(0, (int) $time2);
$timespan = abs($time1 - $time2);
isset($years) and $timespan -= 31556926 * ($years = (int) floor($timespan / 31556926));
isset($months) and $timespan -= 2629744 * ($months = (int) floor($timespan / 2629743.83));
isset($weeks) and $timespan -= 604800 * ($weeks = (int) floor($timespan / 604800));
isset($days) and $timespan -= 86400 * ($days = (int) floor($timespan / 86400));
isset($hours) and $timespan -= 3600 * ($hours = (int) floor($timespan / 3600));
isset($minutes) and $timespan -= 60 * ($minutes = (int) floor($timespan / 60));
isset($seconds) and $seconds = $timespan;
unset($timespan, $time1, $time2);
$deny = array_flip(array('deny', 'key', 'difference', 'output'));
$difference = array();
foreach ($output as $key) {
if (isset($$key) AND ! isset($deny[$key])) {
$difference[$key] = $$key;
}
}
if (empty($difference))
return FALSE;
if (count($difference) === 1)
return current($difference);
return $difference;
}Source : http://snipplr.com/view.php?codeview&id=19353
9 – Display your Twitter entries on your WordPress blog
Integrating a RSS feed is easy, but it is even more on a WordPress blog. The following code allow you to display your 5 most recent Twitter entries on your WordPress blog.
<?php include_once(ABSPATH . WPINC . '/rss.php');
wp_rss('http://twitter.com/statuses/user_timeline/15985955.rss', 5); ?>
Source : http://www.wprecipes.com/how-to-display-any-rss-feed-on-your-wordpress-blog
10 – RSS to Twitter (PHP)
This script isn’t exactly new, but yet, it is still very usefull and this is why I decided to include it in this article. Due to the size of this code, I’m not going to display it on here. You can grab access instructions and download it from the original source.

Source : http://paulstamatiou.com/stammy-script-rss-to-twitter-using-php/




73 Comments + Trackbacks
9.14.2009
A nice list. A few of them will definitely come in handy. I used one from the lylo files which I modified for myself. It displays up to 20 tweets and also displays #hashtags, @replys and urls as well as date in various formats.
9.14.2009
Nice collection. I made a few little twitter apps in the past, and must say I do like the way twitter set up their API. Works pretty simply.
9.14.2009
Thanks! I’m now using the PHP function to get the numbers of followers.
Such a pity that the function to backup tweets is written in Ruby.
I’m desperately searching for a way to archive my tweets automatically in my WordPress blog. Unfortunately I can’t manage to get the Twitter Tools plugin working correctly, it seems to be a common problem…
9.14.2009
useful collection..thanks
9.14.2009
Useful and informative compilation as always!
9.15.2009
it’s a great list, but will more good if there are an example.
9.15.2009
Thanks for the snippets! I’ll be sure to use them.
For number 3, you should remember to download some twitter module. I tried typing ‘import twitter’ into the interactive terminal, and it seems that it didn’t exist. It would actually be surprising for Python to come with a Twitter module.
9.15.2009
JSP examples: http://www.servletsuite.com/servlets/twittertag.htm
9.15.2009
Cool, thanks. Love this site!
9.16.2009
The first script rocks. Thanks! Very useful!
9.16.2009
Just dugg you mate….thanks for such an exceptional post….really speaking it would be really helpful for many of us.
9.16.2009
A variation on the first script using the Zend Framework. The difference is you can auto-follow followers from another person.
http://blog.corywiles.com/automate-adding-twitter-followers-with-zend-f
9.16.2009
file_get_contents() and json_decode() are your friends:
$c=json_decode(file_get_contents(“http://twitter.com/statuses/user_timeline/”.urlencode($username).”.json”));echo $c[0]->text;
9.17.2009
I filled in my user name, password, and term. cURL is enabled.
I recive this error Fatal error: Call to undefined function: json_decode() in /home/content/s/i/x/sixcells/html/follow.php on line 20
9.17.2009
Ultimate post buddy, Now I can remove atleast two plugins from my blog which are currently showing recent tweets and number of followers. Thanks a lot buddy for this exceptionally best post related to twitter.
9.17.2009
Wow! This post is just full of some awesome tools that I will start implementing now. Also, I would love a quick guide on Twitter apps too lol
9.18.2009
Awesome post, A-level quality of information.
Totally thankful !!
9.21.2009
Good list thank you very much!
I`ll try these tips.
9.21.2009
All of these are good examples to get something working quickly, but there are better ways to interact with twitter. For instance, you can create a single function that makes the call to the api so that you don’t repeat the same code every time. I found a great example here: sourcecookbook.com/en/recipes/50/how-to-communicate-with-the-twitter-api-in-php-extremely-easy
9.22.2009
Great list of code snippets for twitter. Definitely, these codes will be very useful to users. Now, you can easily tie up your twitter account to your site.
9.22.2009
Just a short while ago – on the 14th – a new PEAR package, http://pear.php.net/package/Services_Twitter , was released that offers a lot of twitter related functionality that your describing here that can be utilised anywhere PHP is used.
9.22.2009
@Ken Guest: Thanks for letting me know I’m going to check it out!
9.22.2009
Interesting post! Nice collection of useful tips!
9.24.2009
Thanks Jean-Baptiste Jung! Nice post and thanks Ken Guest for PEAR package.
9.24.2009
Hey… there is so much you can do with twitter…
Interesting
9.24.2009
It’d be awesome if somebody could help me with number 1. I’m wanting to build a tool for personal use but dont know anything about curl, very little about the twitter apis and not a ton about php. are there any tutorials out there about this script or one similar doing the same function/idea?
thanks for the help!
9.30.2009
Yeah the post image says it right. Awesome!
9.30.2009
lot’s of code here, thanks for sharing that, i will try at my twitter…
Dini
9.30.2009
Wow!!! Very very very very useful , i’m favorite this entry.
Thanks
10.1.2009
Helpful collection of snippets. Will take advantage of the Autofollow script for sure.
Thanks!
10.10.2009
Wonderful collection of code snippets. Thanks for sharing.
10.10.2009
Very Nice Information.
First Code is Rock ;0)
10.12.2009
Thanks for posting the codes. Got an answer here.. I will bookmark this for reference.
10.14.2009
Oh!!
My brain hurts… The info……. Awesome!
I thank you for the time putting this website together!
I have just discovered it today, I have a lot of work to do.
I can not program, yet I can compy and paste code and then change it a bit (with in reason)
Thanks
Lori
10.28.2009
I updated my php today and it now works.
11.1.2009
Most of the codes are a bit too hard for me to implement on my future Twitter. Guess I’ll need a helping hand. But thanks for sharing such informative tips!
11.6.2009
Thanks for this.. it is great help for us sharing your idea in PHP code.
11.7.2009
Loved the code to tell how many followers you have. I don’t see much of a point to this code other then bragging. Still thanks for posting it for us.
11.25.2009
Cool!
11.25.2009
I would really like an extend to this script, so I can use the most resent twitter status with a specific tag (for example #site). Just like LinkedIn is using #in right now. Some suggestions on where to find such a script?
5 – Get Your Most Recent Twitter Status (PHP)
- extension: filter specific tag like LinkedIn does
11.26.2009
Thanks for the code, i need to bookmarked this stuff for my future reference!
12.3.2009
Amazing, I’ll Give it a Try!
12.4.2009
Thanks for the code! Well, let me try this!
12.6.2009
Hey, I try this last week and it works!! Thanks for the brilliant codes…
1.24.2010
hi, I am having problem about json_decode with cursoration,
$userApiUrl = “http://twitter.com/statuses/friends.json?cursor=-1″;
is this correct:
$followed[] = $u->users->name; to get my friend’s name? i am doing this but it does not returns anything. and also this one:
$json = json_decode($apiresponse);
if ($json != null) {
foreach ($json as $u) {
$cursor1 = $u->next_cursor_str;
$followed[] = $u->users->name
how can I get it to work?