twubbleみたいなものを作りました。
規約もないのにID, PASSを入れるなんて……。と思ったのが運の尽き。ちょっと作ってみました。
ブクマページで心配してる人は、いないみたい。私のような心配性な方はどうぞ。
インスパイア元の本家Twubbleはhttp://www.crazybob.org/twubble/です。
twitterのIDとPASSを設定して実行すると「friendがfriendしてる人」の“friendにされてる数”, “screen_name“を返します。
#!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use XML::DOM; my $username = "YOUR_ID"; my $password = "YOUR_PASSWORD"; my $url = "http://twitter.com"; my $ua = LWP::UserAgent->new(); $ua->credentials( "twitter.com:80", "Twitter API", $username, $password ); my $res = $ua->get($url."/statuses/friends_timeline.xml"); my $parser = new XML::DOM::Parser; my $doc = $parser->parse($res->content); my @users = getUsers($doc); my %hash; foreach my $user (@users){ $res = $ua->get( $url."/statuses/friends_timeline/".${$user}{'id'}.".xml" ); my @firends_of_user = getUsers( $parser->parse($res->content) ); foreach my $uid (@firends_of_user){ $hash{${$uid}{'sname'}}++; } } while (my($friend_id, $count) = each %hash) { print "$count, $friend_id\n"; } sub getUsers { my $doc = shift; my @users; foreach ($doc->getElementsByTagName('user')){ my %hash; my ($id) = $_->getElementsByTagName('id'); my ($sname) = $_->getElementsByTagName('screen_name'); $hash{'id'} = $id->getFirstChild->getNodeValue; $hash{'sname'} = $sname->getFirstChild->getNodeValue; push @users, \%hash; } return @users; }