23
OAuth Echo Rails Gem 2011.12.21 2.1Twitter API勉強会 #twtr_hack

OAuth Echo の Rails Gem

Embed Size (px)

DESCRIPTION

補足などはこちら http://d.hatena.ne.jp/tkawa/20111222/p1

Citation preview

Page 1: OAuth Echo の Rails Gem

OAuth Echoの Rails Gem

2011.12.21 第2.1回Twitter API勉強会 #twtr_hack

Page 2: OAuth Echo の Rails Gem

@tkawa

Page 3: OAuth Echo の Rails Gem
Page 4: OAuth Echo の Rails Gem

REST

Page 5: OAuth Echo の Rails Gem

REST

今回は関係ありません

Page 6: OAuth Echo の Rails Gem

OAuth Echo

Page 7: OAuth Echo の Rails Gem
Page 8: OAuth Echo の Rails Gem

TwitPic

• 画像アップロードサービス

• アカウント登録不要

• TwitterのID・パスワードも入力不要

• どうやって認証してるの?

Page 9: OAuth Echo の Rails Gem

OAuth Echo

• 認証をService Provider(Twitterなど)に委譲するしくみ

• クライアントがOAuth登録してあれば、事前の登録やトークン取得が不要

Page 10: OAuth Echo の Rails Gem
Page 11: OAuth Echo の Rails Gem

GET https://api.twitter.com/1/account/verify_credentials.json

Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g",oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y",oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1272325550",oauth_token="819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw",oauth_version="1.0"

Page 12: OAuth Echo の Rails Gem

POST http://api.twitpic.com/2/upload.json

X-Auth-Service-Provider: https://api.twitter.com/1/account/verify_credentials.jsonX-Verify-Credentials-Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g",oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y",oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1272325550",oauth_token="819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw",oauth_version="1.0"

Page 13: OAuth Echo の Rails Gem

POST http://api.twitpic.com/2/upload.json

X-Auth-Service-Provider: https://api.twitter.com/1/account/verify_credentials.jsonX-Verify-Credentials-Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g",oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y",oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1272325550",oauth_token="819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw",oauth_version="1.0"

(ほぼ)これだけ

Page 14: OAuth Echo の Rails Gem

GET https://api.twitter.com/1/account/verify_credentials.json

Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g",oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y",oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1272325550",oauth_token="819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw",oauth_version="1.0"

Page 15: OAuth Echo の Rails Gem

OAuth Echo

• Delegator(TwitPic)はリクエストごとにService Provider(Twitter)に認証を求める

• 1リクエストで完結する単純なAPIの実装に向いている

• 認証だけなので、Service Provider(Twitter)

側に書き込んだりすることはできない

Page 16: OAuth Echo の Rails Gem

• 非公式仕様- ほぼTwitterでしか使われていない

• OAuth 1.0仕様に基づいており、OAuth 2.0

になると使えない

- Google, Facebook, GitHubなどがOAuth 2.0

問題点?

Page 17: OAuth Echo の Rails Gem
Page 18: OAuth Echo の Rails Gem

class PostsController < ApplicationController http_basic_authenticate_with :name => "tkawa", :password => "secret"

def index render :json => { :message => "Limited Access" } end ...end

かんたんBasic認証

Page 19: OAuth Echo の Rails Gem

class PostsController < ApplicationController oauth_echo_authenticate_with :twitter

def index render :json => { :message => "Limited Access" } end ...end

かんたんOAuth Echo認証

Page 21: OAuth Echo の Rails Gem

きっかけ

http://www.atmarkit.co.jp/news/201004/21/twitterapi.html

Page 22: OAuth Echo の Rails Gem

きっかけ

• Twitterのアノテーションの話がいつのまにか消滅

• 自分で使いたい分だけでも自分で作るか

Page 23: OAuth Echo の Rails Gem

Web認知行動療法http://u2plus.jp/

開発中