メモです

メモです

OAuth::Unauthorized 403 Forbiddenが出た

401の場合はAPIキーが間違ってる可能性があるが、403の場合は恐らくTwitterのCallbackURLの設定が間違っている。こっちから投げるrequestのCallbackURLと

Authentication settingsで設定しているCallbackURLが一致してないと403を返す。

なお、RailsのWebConsoleでresponse.bodyを入力するとエラーメッセージがわかる。

エラー画面の下でピョコピョコ動いてるやつ。

 

ちなみにデフォルトの設定は以下なので、丸パクリしてTwitterのAuthentication settingsで設定すれば良いと思う。

Devise+omniauth+omniauth-twitterの場合

http://localhost:3000/users/auth/twitter/callback

omniauth+omniauth-twitterの場合

http://localhost:3000/auth/twitter/callback

※ドキュメントにはlocalhostにするなって書いてあるけどlocalhostでも認証はできる

※2 omniauthのcallbackのデフォルトの挙動は、遷移元のURLにサフィックスとして/auth/twitter/callbackをつけてcallbackurlとして投げているので、開発環境に127.0.0.1でアクセスしている時はTwitterの設定を「http://127.0.0.1:3000/auth/twitter/callback」に変更する必要がある。

これで時間を失った…。