Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
OAuth Echo
の Rails Gem
2011.12.21 第2.1回Twitter API勉強会 #twtr_hack
@tkawa
REST
REST
今回は関係ありません
OAuth Echo
TwitPic
• 画像アップロードサービス
• アカウント登録不要
• TwitterのID・パスワードも入力不要
• どうやって認証してるの?
OAuth Echo
• 認証をService Provider(Twitterなど)に
委譲するしくみ
• クライアントがOAuth登録してあれば、
事前の登録やトークン取得が不要
GET https://api.twitter.com/1/account/
verify_credentials.json
Authorization: OAuth
oauth_consumer_key="GDdmIQH6jhtmLUypg8...
POST http://api.twitpic.com/2/upload.json
X-Auth-Service-Provider: https://api.twitter.com/1/
account/verify_credentials.j...
POST http://api.twitpic.com/2/upload.json
X-Auth-Service-Provider: https://api.twitter.com/1/
account/verify_credentials.j...
GET https://api.twitter.com/1/account/
verify_credentials.json
Authorization: OAuth
oauth_consumer_key="GDdmIQH6jhtmLUypg8...
OAuth Echo
• Delegator(TwitPic)はリクエストごとに
Service Provider(Twitter)に認証を求める
• 1リクエストで完結する単純なAPIの実装
に向いている
• 認証だけなので、Service ...
• 非公式仕様
- ほぼTwitterでしか使われていない
• OAuth 1.0仕様に基づいており、OAuth 2.0
になると使えない
- Google, Facebook, GitHubなどがOAuth 2.0
問題点?
class PostsController < ApplicationController
http_basic_authenticate_with :name =>
"tkawa", :password => "secret"
def ind...
class PostsController < ApplicationController
oauth_echo_authenticate_with :twitter
def index
render :json => { :message =...
https://github.com/tkawa/
oauth_echo_authentication
きっかけ
http://www.atmarkit.co.jp/news/201004/21/twitterapi.html
きっかけ
• Twitterのアノテーションの話がいつのま
にか消滅
• 自分で使いたい分だけでも自分で作る
か
Web認知行動療法
http://u2plus.jp/
開発中
OAuth Echo の Rails Gem
OAuth Echo の Rails Gem
OAuth Echo の Rails Gem
OAuth Echo の Rails Gem
Upcoming SlideShare
Loading in …5
×

OAuth Echo の Rails Gem

5,393 views

Published on

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

Published in: Technology
  • Be the first to comment

OAuth Echo の Rails Gem

  1. 1. OAuth Echo の Rails Gem 2011.12.21 第2.1回Twitter API勉強会 #twtr_hack
  2. 2. @tkawa
  3. 3. REST
  4. 4. REST 今回は関係ありません
  5. 5. OAuth Echo
  6. 6. TwitPic • 画像アップロードサービス • アカウント登録不要 • TwitterのID・パスワードも入力不要 • どうやって認証してるの?
  7. 7. OAuth Echo • 認証をService Provider(Twitterなど)に 委譲するしくみ • クライアントがOAuth登録してあれば、 事前の登録やトークン取得が不要
  8. 8. GET https://api.twitter.com/1/account/ verify_credentials.json Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g", oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0A QR3Fmi7Q6Y", oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1272325550", oauth_token="819797- Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw", oauth_version="1.0"
  9. 9. POST http://api.twitpic.com/2/upload.json X-Auth-Service-Provider: https://api.twitter.com/1/ account/verify_credentials.json X-Verify-Credentials-Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g", oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0A QR3Fmi7Q6Y", oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1272325550", oauth_token="819797- Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw", oauth_version="1.0"
  10. 10. POST http://api.twitpic.com/2/upload.json X-Auth-Service-Provider: https://api.twitter.com/1/ account/verify_credentials.json X-Verify-Credentials-Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g", oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0A QR3Fmi7Q6Y", oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1272325550", oauth_token="819797- Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw", oauth_version="1.0" (ほぼ)これだけ
  11. 11. GET https://api.twitter.com/1/account/ verify_credentials.json Authorization: OAuth oauth_consumer_key="GDdmIQH6jhtmLUypg82g", oauth_nonce="oElnnMTQIZvqvlfXM56aBLAf5noGD0A QR3Fmi7Q6Y", oauth_signature="U1obTfE7Rs9J1kafTGwufLJdspo%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1272325550", oauth_token="819797- Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw", oauth_version="1.0"
  12. 12. OAuth Echo • Delegator(TwitPic)はリクエストごとに Service Provider(Twitter)に認証を求める • 1リクエストで完結する単純なAPIの実装 に向いている • 認証だけなので、Service Provider(Twitter) 側に書き込んだりすることはできない
  13. 13. • 非公式仕様 - ほぼTwitterでしか使われていない • OAuth 1.0仕様に基づいており、OAuth 2.0 になると使えない - Google, Facebook, GitHubなどがOAuth 2.0 問題点?
  14. 14. class PostsController < ApplicationController http_basic_authenticate_with :name => "tkawa", :password => "secret" def index render :json => { :message => "Limited Access" } end ... end かんたんBasic認証
  15. 15. class PostsController < ApplicationController oauth_echo_authenticate_with :twitter def index render :json => { :message => "Limited Access" } end ... end かんたんOAuth Echo認証
  16. 16. https://github.com/tkawa/ oauth_echo_authentication
  17. 17. きっかけ http://www.atmarkit.co.jp/news/201004/21/twitterapi.html
  18. 18. きっかけ • Twitterのアノテーションの話がいつのま にか消滅 • 自分で使いたい分だけでも自分で作る か
  19. 19. Web認知行動療法 http://u2plus.jp/ 開発中

×