10 code snippets to interact with Twitter

by Jean.

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/

CWC Special Deal!

Get one year of quality hosting + domain from A Small Orange for only $40 with our exclusive deal!

Featured WordPress Theme

H-Code - Responsive & Multipurpose WordPress Theme