Rails関連メモ

omniauth-twitterの使い方

本家: https://github.com/arunagw/omniauth-twitter

導入の基礎

  1. Gemfileにgem ‘omniauth-twitter’を追加してbundle installを実行。
  2. config/initializersにomniauth.rbを追加し、Consumer Key / Consumer Secretを設定する。(具体的な記述方法は本家参照)
  3. Twitterで認証された後に表示されるコールバック用のアクションを用意する。
    例: home#twitter_auth_callback
  4. routes.rbでコールバック用のURL(auth/twitter/callback)の設定をする。
    例: match ‘/auth/:provider/callback’ => ‘home#twitter_auth_callback’
  5. サーバーを再起動し、auth/twitterを開けばOAuthの認証が始まり、認証が終わるとコールバック用のアクションに飛ばされる。

401 Unauthorizedがでてしまう場合

dev.twitter.comのアプリの設定でCallback URLがブランクになっている場合に発生します。Callback URLは@Anywhere domainsで登録したドメインのものしか登録できないので注意。

3.1以降: Production環境でCSS関連のテンプレートエラーが発生する

Rails 3.1からアセットパイプラインの機構が導入されました。Development環境ではリクエスト毎にCSSがビルドされるのでエラーになりませんが、Production環境では予めrakeタスクでプリコンパイルを実行しておく必要があります。

bundle exec rake assets:precompile RAILS_ENV=production

たしかにherokuにpushするときも毎回ログを見てるとアセットのコンパイルが行われていたなあ。
参考: プリコンパイル済みのアセットを作成する – 祈れ、そして働け ~ Ora et labora