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 http://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 => 'http://mysite.com/callback')

All the properties are accessible as instance methods

search.id => 12560301 search.search => 'my keyword' search.webhook => 'http://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 (c) 2009 Jordan Glasner. See LICENSE for details.