10 code snippets to interact with Twitter

by Jean. 80 Comments -

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/

  • Pingback: 10 code snippets to interact with Twitter | Webs Developer

  • http://worldoweb.co.uk/ Tracy

    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.

  • http://www.bryantsmith.com Bryant Smith

    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.

  • http://www.schattendings.de/ Jessica

    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…

  • http://www.joyoge.com/ joyoge designers’ bookmark

    useful collection..thanks

  • http://www.reliablewebhosting.us/ RWH

    Useful and informative compilation as always!

  • Pingback: 10 code snippets to interact with Twitter | TopRoundups

  • http://jeparablogger.blogspot.com Akbar Amri

    it’s a great list, but will more good if there are an example.

  • http://fwebde.com/ Eric B.

    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.

  • http://www.servletsuite.com Den

    JSP examples: http://www.servletsuite.com/servlets/twittertag.htm

  • http://www.gordejev.lv/ Gordejev

    Cool, thanks. Love this site!

  • Pingback: Darklg Web (darklgweb) 's status on Tuesday, 15-Sep-09 13:02:51 UTC - Identi.ca

  • Pingback: 10 Code Snippets to Interact with Twitter | Choose Daily

  • Pingback: Lesenswertes vom Tuesday, 15. September 2009 : MiZine

  • http://www.koblenz-webdesign.de Koblenz Webdesign

    The first script rocks. Thanks! Very useful!

  • http://www.weddingsbyeternal-singapore.com/ sgwedd

    Just dugg you mate….thanks for such an exceptional post….really speaking it would be really helpful for many of us.

  • http://www.corywiles.com/ Cory Wiles

    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

  • Pingback: CatsWhoCode.com: 10 code snippets to interact with Twitter | Webs Developer

  • http://seancoates.com Sean Coates

    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;

  • Kennedy

    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

  • http://www.clickonf5.org Sanjeev

    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.

  • Pingback: 10 code snippets to interact with Twitter « とっても! ちゅどん(雑記帳)

  • http://www.plibb.com Bryan

    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

  • Pingback: Daily Digest for 2009-09-17 | Pedro Trindade

  • Pingback: CatsWhoCode.com: 10 code snippets to interact with Twitter | pcsourcenetwork.com

  • Pingback: 2009/09/18に気になったこと | debeso

  • http://aflets.com Alexandros

    Awesome post, A-level quality of information.

    Totally thankful !!

  • Pingback: BlogBuzz September 19, 2009

  • http://blogotips.com BlogoTips

    Good list thank you very much! :) I`ll try these tips.

  • Pingback: » 10 code snippets to interact with Twitter - Yee Torrents News 4

  • Garrapata

    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

  • http://www.mangeindogs.net Nicolas

    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.

  • http://blogs.linux.ie/kenguest/ Ken Guest

    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.

  • http://www.wprecipes.com Jean-Baptiste Jung

    @Ken Guest: Thanks for letting me know I’m going to check it out!

  • http://www.sunriselasik.com Annie

    Interesting post! Nice collection of useful tips!

  • Pingback: Twitter Auto-Follow Script To Run On Your Own Server | TuxWire : The Linux Blog

  • http://swingoutthailand.com/ Tom

    Thanks Jean-Baptiste Jung! Nice post and thanks Ken Guest for PEAR package.

  • http://www.akbarhshah.com Akbar Shah

    Hey… there is so much you can do with twitter…
    Interesting

  • http://www.digitalskraps.com David Sparks

    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!

  • Pingback: This Week in Twitter for 9/25/2009 « Church Mojo

  • Pingback: 10 códigos gratuitos para interactuar con Twitter | Adictos a la red

  • Pingback: Lenguajes X » Ejemplos de código para trabajar con Twitter

  • http://blog.ashfame.com/ Ashfame

    Yeah the post image says it right. Awesome! ;)

  • http://www.ejakulasi-dini.com ejakulasi dini

    lot’s of code here, thanks for sharing that, i will try at my twitter…

    Dini

  • http://www.dreamcoders.com.ar Christian Gonzalez

    Wow!!! Very very very very useful , i’m favorite this entry.
    Thanks

  • Pingback: Top Articles On The Web Design Billboard In September’09 | Showcases | instantShift

  • Pingback: Top Articles On The Web Design Billboard In September’09 | KolayOnline

  • Pingback: Monthly Mother Lode of MacDaddy Links: September 2009 | bkmacdaddy designs

  • http://www.printglobe.com Kim

    Helpful collection of snippets. Will take advantage of the Autofollow script for sure.
    Thanks!

  • Pingback: Weekly Link Roundup – 2009-10-02 | Unemployed Developer

  • Pingback: links for 2009-10-05 | Digitalistic - Mashup or die trying

  • Pingback: BlogMouth : Twitter Tweet Links September 2009

  • Pingback: » Ejemplos de código para trabajar con Twitter

  • http://www.jsxtech.com Jaspal Singh

    Wonderful collection of code snippets. Thanks for sharing.

  • http://couponsforsaving.com/ Basit

    Very Nice Information.

    First Code is Rock ;0)

  • http://spacemakercoffeemaker.com Jack

    Thanks for posting the codes. Got an answer here.. I will bookmark this for reference.

  • http://www.lorislingerie.com/ Lori Corset

    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

  • http://kennedysgarage.com Kennedy

    I updated my php today and it now works.

  • http://www.best-twitter.com Alex

    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!

  • http://www.vendingmachinebusinesses.net/ Anne Collins

    Thanks for this.. it is great help for us sharing your idea in PHP code.

  • http://mwinsulatedglass.com John

    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.

  • http://rossatto.com.br Jonas

    Cool!

  • Pingback: Mes favoris du 24-11-09 au 25-11-09

  • http://www.ademaweb.nl jeroen

    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

  • Pingback: links for 2009-11-25 | Eric Reboisson's Blog

  • Pingback: 6 фрагментов PHP-кода для взаимодействия с Twitter | Proofsite: ваш cайт должен продавать

  • http://www.discountwebdesigner.com Johnson

    Thanks for the code, i need to bookmarked this stuff for my future reference!

  • http://chaaps.com Chethan

    Amazing, I’ll Give it a Try!

  • http://www.markmywordsmedia.com Jackie

    Thanks for the code! Well, let me try this!

  • http://www.beyondskinscience.com Sidney

    Hey, I try this last week and it works!! Thanks for the brilliant codes…

  • Pingback: Reticências.org » » Exibindo seguidores no Twitter sem plugin

  • john

    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?

  • Pingback: Twitter automatisieren! | My IT-Blog

  • Pingback: 10 code snippets to interact with Twitter « BrightSpark

  • Pingback: 10 code snippets to interact with Twitter « DesignerLinks

  • http://npxp.com NPXP

    I will definitely give it a try in some time. Let me see how much helpful these codes are ;)

    Thanks for this nice post..

  • http://www.ixdownload.com/news/ Egan

    The best of these “hacks” – code snippets for my use would be the “view who doesn’t follow you (Python)”. Im positive in following new twitter users but after months of not following me back its time to unfollow, especially if the user not only make any good tweets but dont seem to follow others as well.

  • http://tunebrainy.com holly

    Very informative php work, I tried this first and then came back to comment and i must say this is very cool and functional, though I have come up with some modifications on the code my self, I would like you to see them, may just a small upgrade.

  • http://fairheadcreative.com Adam Fairhead

    Nice little roundup; I’ve always used the same couple of scripts over and over. It’s nice to see some new ones to add to the roster.

  • Bird

    I am trying to create a project where “if” someone tweets to an account (mine for example) the word RED…in real time, a processing script I was running that featured a blue ball would turn red. However, I have NO clue where to get started linking up with twitter?!

    If anyone has any ideas, I would really appreciate it :D