twitter on rails

40
Twitter on Rails Michael Bleigh, RailsConf 2009 Wednesday, May 6, 2009

Upload: michael-bleigh

Post on 13-May-2015

9.156 views

Category:

Technology


0 download

DESCRIPTION

Learn how to build a Twitter application on Rails. Fast. Presented at RailsConf 2009 by Michael Bleigh.

TRANSCRIPT

Page 1: Twitter on Rails

Twitter on RailsMichael Bleigh, RailsConf 2009

Wednesday, May 6, 2009

Page 2: Twitter on Rails

Wednesday, May 6, 2009

Page 3: Twitter on Rails

Wednesday, May 6, 2009

Page 4: Twitter on Rails

What’s the bigf-ing deal?

Wednesday, May 6, 2009

Page 5: Twitter on Rails

MySpace

Wednesday, May 6, 2009

Page 6: Twitter on Rails

MySpace

Wednesday, May 6, 2009

Page 7: Twitter on Rails

Facebook

Wednesday, May 6, 2009

Page 8: Twitter on Rails

Facebook

Wednesday, May 6, 2009

Page 9: Twitter on Rails

different?How is

Wednesday, May 6, 2009

Page 10: Twitter on Rails

Audience.Ben Garney via Flickr

Wednesday, May 6, 2009

Page 11: Twitter on Rails

Public.

three-B via Flickr

Wednesday, May 6, 2009

Page 12: Twitter on Rails

Search.

Vitó via Flickr

Wednesday, May 6, 2009

Page 13: Twitter on Rails

API.

benben via Flickr

Wednesday, May 6, 2009

Page 14: Twitter on Rails

In Code

Wednesday, May 6, 2009

Page 15: Twitter on Rails

Search API

Wednesday, May 6, 2009

Page 16: Twitter on Rails

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

OAuthWednesday, May 6, 2009

Page 18: Twitter on Rails

TCM Hitchhiker via Flickr

Wednesday, May 6, 2009

Page 19: Twitter on Rails

There’s a gemfor that.

ArtWerk via Flickr

Wednesday, May 6, 2009

Page 20: Twitter on Rails

The OAuth Shuffle

• Consumer

• Request Token

• Authorization

• Access!

Wednesday, May 6, 2009

Page 21: Twitter on Rails

Sign in with Twitter

• Consumer

• Request Token

• Authorize (Just Once)

• Access!

Wednesday, May 6, 2009

Page 22: Twitter on Rails

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

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

Rails

Wednesday, May 6, 2009

Page 25: Twitter on Rails

TwitterAuthgithub.com/mbleigh/twitter-auth

Wednesday, May 6, 2009

Page 26: Twitter on Rails

TwitterAuth makes Rails Twitter apps

stupid simple.

Wednesday, May 6, 2009

Page 27: Twitter on Rails

Just enough magic.Steffe via Flickr

Wednesday, May 6, 2009

Page 28: Twitter on Rails

Livecoding!

Wednesday, May 6, 2009

Page 29: Twitter on Rails

TwistenersWho actually listens?

Wednesday, May 6, 2009

Page 30: Twitter on Rails

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

Step 1: Credentials

Wednesday, May 6, 2009

Page 32: Twitter on Rails

twitter.com/apps

Wednesday, May 6, 2009

Page 33: Twitter on Rails

Step 2: Template

Wednesday, May 6, 2009

Page 34: Twitter on Rails

rails -m http://bit.ly/twitter-rails yourapp

Type the Magic Words

Wednesday, May 6, 2009

Page 35: Twitter on Rails

TwitterAuth

• Engines-based login

• logged_in? and current_user

• user.twitter.get(‘/api/path’)

Wednesday, May 6, 2009

Page 36: Twitter on Rails

Twitter Template

• helpers for common twitter needs

• instant gratification

Wednesday, May 6, 2009

Page 37: Twitter on Rails

Step 3: Aggregate

Wednesday, May 6, 2009

Page 38: Twitter on Rails

Step 4: Share

Wednesday, May 6, 2009

Page 39: Twitter on Rails

twisteners.heroku.comgithub.com/mbleigh/twisteners

Wednesday, May 6, 2009

Page 40: Twitter on Rails

@mbleighFollow me:

Wednesday, May 6, 2009