tweethook
A simple Ruby wrapper for accessing Tweethook’s API.
required gems
-
tyhpoeus
-
json
required ENV variables
-
TWEETHOOK_API_USER
-
TWEETHOOK_API_PASS
-
TWEETHOOK_SIGNATURE
See docs.heroku.com/config-vars for the how and why.
Usage
There are three main classes
-
Tweethook::Search
-
Tweethook::Post
-
Tweethook::Result
Creating a new search
search = Tweethook::Search.create(‘my keyword’, :webhook => ‘mysite.com/callback’)
All the properties are accessible as instance methods
search.id => 12560301 search.search => ‘my keyword’ search.webhook => ‘mysite.com/callback’ search.format => ‘json’ # this lib only works w/ the JSON format
Receiving a new post
Tweethook::Post is a subclass of Array that takes the raw JSON from Tweethook. The JSON is parsed into a hash and the results are mapped to Tweethook::Result. The results can be accessed as if it was just an array, i.e post = first result
# example JSON from post (accessible in request.body) json = ‘{
"status_count": 2,
"signature": "XXXXXXXXXXXXXXXXXXXXXXXX",
"time": 1253055217,
"results": [{
"user": "deputy5765",
"tweet": "@Lu_Guz You will have to install a Twitter application in Facebook. Log in, search Twitter, install the app, then enter the info #geeksquad",
"usrimg": "http:\/\/a3.twimg.com\/profile_images\/107659093\/0_normal.jpg",
"tid": 4015703048,
"tstamp": "Tue, 15 Sep 2009 22:53:12 +0000",
"unix_tstamp": 1253055192,
"is_reply": 1,
"is_retweet": 0,
"mentions": "Lu_Guz",
"source": "Tweetie",
"sourcelink": "http:\/\/www.atebits.com\/",
"search_query": "twitter"
},
{
"user": "heatherkentart",
"tweet": "@k8otomato - Thanks, I will definitely try later. I will also postpone any negative opinions of Twitter. :D",
"usrimg": "http:\/\/a3.twimg.com\/profile_images\/417128285\/me_normal.jpg",
"tid": 4015703318,
"tstamp": "Tue, 15 Sep 2009 22:53:11 +0000",
"unix_tstamp": 1253055191,
"is_reply": 1,
"is_retweet": 0,
"mentions": "k8otomato",
"source": "web",
"sourcelink": "http:\/\/twitter.com\/",
"search_query": "twitter"
}
}‘
post = Tweethook::Post.new(json)
post.size => 2
post.first.user => ‘deputy5765’
Note on Patches/Pull Requests
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so I don’t break it in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.
Copyright
Copyright © 2009 Jordan Glasner. See LICENSE for details.