私がRuby on Rails4で開発中、omniauth-twitter認証時に401エラーが出た時の解決法です。
#開発環境
- Windows7-64bit
- Ruby on Rails 4.1.1
- Ruby 2.0.0
- omniauth 1.2.2
- omniauth-twitter 1.1.0
#(結論)PCの時刻がずれていた
考えられる間違いとして、twitterのKeyの入力間違えなどがありますが、私の場合はPCの時刻がずれていたことが原因でした。
以下の手順で時刻を補正して、うまくいくか試してみてください。
- [コントロールパネル]から、[時計、言語、および地域]ー[日付と時刻の設定]で、[日付と時刻]を表示
- [インターネット時刻]タブから、[設定の変更(C)]ボタンをクリックして、[インターネット時刻設定]を表示
- [インターネット時刻サーバと同期する(S)]にチェックを入れ、サーバを選択して[今すぐ更新(U)]ボタンを押して同期
- 正常に同期した旨のメッセージが表示されたら、サーバを再起動(webrick等)
うまく行かない場合は、同期サーバを代えてみるまたは他の原因が考えられます。
コンマ数秒のずれでもエラーになるようです。