ついにやってしまった。
Rails2.3.4でOAuthを利用してTwitterAPIにアクセス。
TwitterAPI with OAuth。
いやー楽しかった。
かなりハマりもあったのでメモメモ。
まずはOAuthとTwitterAPIへのアクセスの概要について。
発音はOH OAuthと読むらしい。
OAuthとはデスクトップ・Webアプリケーション向けのAPIへのアクセス権限を委譲するためのプロトコル。
登場人物は3人でそれぞれプロバイダ、コンシューマ、ユーザとなる。
最終的な目的はプロバイダから発行されるリソースアクセス用のAccessTokenというものを取得すること。
簡単な動きは以下の通り。
- ユーザがコンシューマを通してRequestTokenを要求し、プロバイダが発行する
- ユーザはプロバイダを通してコンシューマがリソースへアクセスをするのを認可する(RequestTokenが認可済みになる)
- 同一のユーザが認可したことを確認して、認可済みのRequestTokenをAccessTokenへ交換する。
- AccessTokenを通してリソースへアクセスする。
こんな流れになるのかな。
文献は結構あったので調べれば色々でてくるはず。
ソースを載せようとおもったけどちょっと量多かった。。
要望あったら載せようかな。
気になったのはなぜシークレットが必要なのかということ。
答えはリクエストの署名に使用しているということだった。
どうやらコンシューマシークレットとリクエスト・アクセストークンシークレットが秘密鍵になったHMAC-SHA1を使っているみたい。
またなんでAccessTokenをすぐ発行しないのかについても考えてみた。
認可後のレスポンスにはoauth_verifierパラメータというのが含まれ、oauth_verifierと認可されたrequest_tokenを使ってaccess_tokenを取得する。
oauth_verifierパラメータは、Request Tokenを発行したUserとブラウザで認可処理を行ったUserが同一であることを確認するためのパラメータみたいなので、この確認のためにすぐ発行できないという推測をしてみた。
さて合ってるのかな。。
- Newer: Rails2.3.4で例外処理。
- Older: iPhoneアプリ。
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.terut.net/wp-trackback.php?p=177
- Listed below are links to weblogs that reference
- OAuthの流れと気になったこと。 from Action*3