TwitterLand - All the best Twitter-related APIs in one gem!
- Update - Added TweetBlocker API support
- Update - Added BackTweets API support
Here at Squeejee we do a lot of data mashups, and more and more of those are mashups of Twitter and 3rd-party services related to Twitter.
There are a bunch of Twitter-related sites out there that have great APIs to pull in their data. Since we’ve been using so many of them repeatedly in our projects we finally decided to pull them into a single gem. TwitterLand will give all you other Twitter app developers out there easy access to these great APIs in your ruby projects.
So far we’ve included:
Install
sudo gem install twitterland
Follow Cost Usage
# Get follow cost for specified user
Twitterland::FollowCost.show('bradleyjoyce')
=> <Mash at_reply_index=24.0 average_tweets_per_day=6.87254901960784 average_tweets_per_day_recently=19.6396220282001 golden_index=3.0 milliscobles_all_time=324.02 milliscobles_recently=925.96 political_index=1.0 profile_image_url="http://s3.amazonaws.com/twitter_production/profile_images/179927752/bradley_normal.png" statuses_count=3505 twitter_created_at="2008/03/14 18:26:52 -0700" username="bradleyjoyce">
Twitter Grader Usage
# request your api key at [http://twitter.grader.com/accessrequestform](http://twitter.grader.com/accessrequestform)
# get twitter grade for user
api_key = "OU812"
Twitterland::TwitterGrader.grade('bradleyjoyce', api_key)
=> 98.4183
Mr.Tweet Usage
get your api key at http://api.mrtweet.com/newapi
Initialize Mrtweet
api_key = 'OU812'
mt = Twitterland::Mrtweet.new(api_key,'bradleyjoyce')
Is user
# Check whether the given user is a MrTweet user.
mt.is_user
=> true
Profile
# Returns MrTweet statistics of the given user
mt.profile
=> <Mash conversation=0.225 conversation_percentile=53 frequency=8.98621 frequency_percentile=90 links=0.53 links_percentile=87 recommendations=1>
mt.profile.links
=> 0.53
Recommendations
# Returns the latest recommendations the given user received on MrTweet
mt.recommendations
=> [<Mash date=Thu Aug 06 01:02:54 -0500 2009 name="billtrammel" text="he is an entrepreneur, and one of the developers of TweetCongress.org, award-winning site promoting government transparency. Plus, he's a good friend.">]
mt.recommendations.first.name
=> "billtrammel"
Most attention towards
# Returns the twitter_id's of 3 users that for the given user pays the most attention to
mt.most_attenion_towards
=> [15049040, 17993906, 22286046]
Recommend
# Creates a recommendation from the given user, to another user (aka "friend_name")
reason = "Wynn is an awesome entrepreneur, rubyist, designer and friend! Follow him for his useful and entertaining tweets!"
friend_name = "pengwynn"
mt.recommend(reason,friend_name)
=> true
Twinfluence
Initialize Twinfluence
username = 'bradleyjoyce'
password = 'mypassword'
t = Twitterland::Twinfluence.new(username,password)
=> #<Twitterland::Twinfluence:0x317ecf8 @username="bradleyjoyce", @password="mypassword">
User
# gets twinfluence data for user
t.user('bradleyjoyce')
t.user('bradleyjoyce')
=> <Mash user=<Mash adrider=<Mash script=[<Mash type="text/javascript">, <Mash src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">]> centralization="24.224443556856" centralization_grade="0.0 Average - Resilient" description="Entrepreneur and Web Developer -- Floxee.com, TweetCongress.org, Sherflock.com, Squeejee.com" followers_count="1315" friends_count="1278" id="14688076" location=nil name="Bradley Joyce" screen_name="bradleyjoyce" second_order="7936664" second_order_grade="Rank: <b>#10,185</b> (93%)" social_capital="6035.4859315589" social_capital_grade="+1.4 High" statuses_count="3511" unix_timestamp="1249683954" url="http://bradleyjoyce.me" velocity="15535.453112211" velocity_grade="+0.1 Fast Average">>
Twitter Counter
Show
tc = Twitterland::TwitterCounter.show('bradleyjoyce')
tc.rank
=> 37194
# available methods
tomorrow_2w
followers_2w_ago
followers_yesterday
followers_current
friends_current
next_month
growth_since_2w
started_followers
rank
user_id
growth_since
follow_days
tomorrow
next_month_2w
average_growth
average_growth_2w
TweetBlocker
User
# get grade for user
result = Twitterland::TweetBlocker.user('bradleyjoyce')
=> <Mash grade="a" score=100 url="http://twitter.com/bradleyjoyce" username="Bradley Joyce">
Spam
# report a user as spammer
Twitterland::TweetBlocker.report_spam('spamtest')
Rate Limit Status
# check your rate limit status
Twitterland::TweetBlocker.rate_limit
=> <Mash hourly_limit=100 remaining_hits=100 reset_time="2009-08-11 23:12:41 UTC" reset_time_in_seconds=2746>
BackTweets
Search
# Return tweet referencing a URL
results = Twitterland::BackTweets.search('http://squeejee.com', 'OU812')
results.tweets.size
=> 25
results.tweets.first.from_user
=> "euromarianne"
results.items_per_page
=> 25
results.total_results
=> 3301
Source
http://github.com/squeejee/twitterland/
Documentation
http://rdoc.info/projects/squeejee/twitterland
Copyright
Copyright (c) 2009 Squeejee. See LICENSE for details.