jugyo.wordpress.com

Yet another jugyo's blog

twitter-auth を使って Rails で簡単 Twitter 認証♪

leave a comment »

twitter-auth という Rails プラグインを使うと簡単に Twitter を使った認証が行えるようになります。

http://github.com/mbleigh/twitter-auth

ですが、普通に使おうとすると request_token を取得するところで 以下のようなエラーが出てしまいました。

OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed):
...

サーバー証明書がないためにエラーになっているようなのですが、調べてみたところ twitter-auth には証明書を指定する方法が用意されていませんでした。
なので github で fork して証明書を指定できるようにしてこの問題を回避することにしました。

http://github.com/jugyo/twitter-auth

インストール

./script/plugin install git://github.com/jugyo/twitter-auth.git

使い方

generator が用意されていて、以下を実行すると必要なファイルを作ってくれます。

 script/generate twitter_auth 

migration も作られるので必要に応じてスキーマを編集して rake db:migrate してください。

証明書ファイルの取得

以下のページを参考に、 Twitter の CA 証明書ファイルを取得し、適当な場所に保存します。

http://d.hatena.ne.jp/vividcode/20091031/1256967931

コンシューマーキーとシークレットキーの取得

以下のページからアプリケーションを登録し、コンシューマーキーとシークレットキーを取得してください。

https://twitter.com/apps

設定

config/twitter_auth.yml を編集します。

development:
  strategy: oauth
  oauth_consumer_key: "コンシューマーキー"
  oauth_consumer_secret: "シークレットキー"
  base_url: "https://twitter.com"
  authorize_path: "/oauth/authenticate"
  api_timeout: 10
  remember_for: 14 # days
  oauth_callback: "http://localhost:3000/oauth_callback"
  ca_file: "証明書ファイルのパス"
...

確認

./script/server でアプリケーションを起動し http://localhost:3000/session/new にアクセスすると、リダイレクトされて以下のようなページが表示されると思います。

twitter_oauth

承認を求めているアプリケーションの名前が正しいことを確認し「Allow」ボタンを押してください。
リダイレクトされて http://localhost:3000/ に帰ってきたら成功です。
おめでとうございます。

Advertisements

Written by jugyo

February 6, 2010 at 23:37

Posted in Uncategorized

Tagged with , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: