2011年11月17日木曜日

[Rails]OmniAuthの使い方

RailsでOAuthを使うにはOmniAuthが簡単で便利。
というわけで使ってみよう。

gem 'omniauth'

とGemfileに追記して、bundle installします。
「config/initializers/omniauth.rb」というファイルが出来ているので
以下のように編集します。

Rails.application.config.middleware.use OmniAuth::Builder do
provider :XXX, "Consumerキー", "Consumerシークレット"
end

「XXX」の部分やOAuthを使って利用したいサービスを指定します。
例):twitter, :facebook, :githubなど
Consumerキーやシークレットはそれぞれのサービスで取得したキーやシークレットの値を指定します。
これをそのままハードコーディングしてしまうのは問題なので一般的には以下のように指定します。

例)provider :twitter, ENV['TWITTER_KEY'], ENV['TWITTER_SECRET']

環境変数からとってくるようにします。
環境変数の指定は各OSの手順に従えばよいですが、heroku上で利用する場合は以下のコマンドを使います。

heroku config:add TWITTER_KEY="XXXXXX"

これで「ENV["TWITTER_KEY"]」とすれば「XXXXX」が取得できます。