Twitter on Rails
-
Upload
michael-bleigh -
Category
Technology
-
view
9.153 -
download
0
description
Transcript of Twitter on Rails
![Page 1: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/1.jpg)
Twitter on RailsMichael Bleigh, RailsConf 2009
Wednesday, May 6, 2009
![Page 2: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/2.jpg)
Wednesday, May 6, 2009
![Page 3: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/3.jpg)
Wednesday, May 6, 2009
![Page 4: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/4.jpg)
What’s the bigf-ing deal?
Wednesday, May 6, 2009
![Page 5: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/5.jpg)
MySpace
Wednesday, May 6, 2009
![Page 6: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/6.jpg)
MySpace
Wednesday, May 6, 2009
![Page 7: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/7.jpg)
Wednesday, May 6, 2009
![Page 8: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/8.jpg)
Wednesday, May 6, 2009
![Page 9: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/9.jpg)
different?How is
Wednesday, May 6, 2009
![Page 10: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/10.jpg)
Audience.Ben Garney via Flickr
Wednesday, May 6, 2009
![Page 11: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/11.jpg)
Public.
three-B via Flickr
Wednesday, May 6, 2009
![Page 12: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/12.jpg)
Search.
Vitó via Flickr
Wednesday, May 6, 2009
![Page 13: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/13.jpg)
API.
benben via Flickr
Wednesday, May 6, 2009
![Page 14: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/14.jpg)
In Code
Wednesday, May 6, 2009
![Page 15: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/15.jpg)
Search API
Wednesday, May 6, 2009
![Page 16: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/16.jpg)
search_twitter_for('RailsConf').collect{|s| s['text']}
[ "Packing up for #railsconf. Swine flu here we come!", "Putting new strings on some guitars for the #RailsConf music jam”, "Vegas, baby! All the @contrast boys laying into their first drinks...”, ...]
require 'open-uri'require 'json'
def search_twitter_for(query) query = CGI.escape(query) JSON.parse( open("http://search.twitter.com/search.json?q=#{query}").read )['results']end
Wednesday, May 6, 2009
![Page 17: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/17.jpg)
OAuthWednesday, May 6, 2009
![Page 18: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/18.jpg)
TCM Hitchhiker via Flickr
Wednesday, May 6, 2009
![Page 19: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/19.jpg)
There’s a gemfor that.
ArtWerk via Flickr
Wednesday, May 6, 2009
![Page 20: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/20.jpg)
The OAuth Shuffle
• Consumer
• Request Token
• Authorization
• Access!
Wednesday, May 6, 2009
![Page 21: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/21.jpg)
Sign in with Twitter
• Consumer
• Request Token
• Authorize (Just Once)
• Access!
Wednesday, May 6, 2009
![Page 22: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/22.jpg)
require 'oauth'require 'json'
# register your application at http://twitter.com/apps
consumer = OAuth::Consumer.new( 'mykey','mysecret', :site => 'http://twitter.com/')
request_token = consumer.get_request_tokenputs request_token.authorize_url
# go and visit the authorize URL
access_token = request_token.get_access_tokenme = JSON.parse(access_token.get('/account/verify_credentials.json').body)
me['screen_name'] # => 'mbleigh'
gem install oauth --version 0.3.2
Wednesday, May 6, 2009
![Page 23: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/23.jpg)
Caveat OAuth
• The Advisory (no callbacks)
• Solution: One Dev App
• Read/Write Inconsistency
• Solution: Delete and Recreate
Wednesday, May 6, 2009
![Page 24: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/24.jpg)
Rails
Wednesday, May 6, 2009
![Page 25: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/25.jpg)
TwitterAuthgithub.com/mbleigh/twitter-auth
Wednesday, May 6, 2009
![Page 26: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/26.jpg)
TwitterAuth makes Rails Twitter apps
stupid simple.
Wednesday, May 6, 2009
![Page 27: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/27.jpg)
Just enough magic.Steffe via Flickr
Wednesday, May 6, 2009
![Page 28: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/28.jpg)
Livecoding!
Wednesday, May 6, 2009
![Page 29: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/29.jpg)
TwistenersWho actually listens?
Wednesday, May 6, 2009
![Page 30: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/30.jpg)
Application Goals
• Log in via Twitter
• See a list of top mentioners
• Tweet the top three “twisteners”
Wednesday, May 6, 2009
![Page 31: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/31.jpg)
Step 1: Credentials
Wednesday, May 6, 2009
![Page 32: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/32.jpg)
twitter.com/apps
Wednesday, May 6, 2009
![Page 33: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/33.jpg)
Step 2: Template
Wednesday, May 6, 2009
![Page 34: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/34.jpg)
rails -m http://bit.ly/twitter-rails yourapp
Type the Magic Words
Wednesday, May 6, 2009
![Page 35: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/35.jpg)
TwitterAuth
• Engines-based login
• logged_in? and current_user
• user.twitter.get(‘/api/path’)
Wednesday, May 6, 2009
![Page 36: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/36.jpg)
Twitter Template
• helpers for common twitter needs
• instant gratification
Wednesday, May 6, 2009
![Page 37: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/37.jpg)
Step 3: Aggregate
Wednesday, May 6, 2009
![Page 38: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/38.jpg)
Step 4: Share
Wednesday, May 6, 2009
![Page 39: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/39.jpg)
twisteners.heroku.comgithub.com/mbleigh/twisteners
Wednesday, May 6, 2009
![Page 40: Twitter on Rails](https://reader034.fdocuments.in/reader034/viewer/2022052523/5552f2f8b4c90587048b4c31/html5/thumbnails/40.jpg)
@mbleighFollow me:
Wednesday, May 6, 2009