[自在]RailsでTwitterのOmniAuth認証がうまくいかなかった原因を解明

Books

「パーフェクト Ruby on Rails」を独習していて、途中で詰まっていた。

3章のp176で、Twitterの認証画面に遷移するはずなのだが、どうしてもそうならない。
「401 unauthorized」というエラー画面が表示されて、先に進めない。

こういうときはググってみると大抵解決するのだが、、、
「おう、そうか、Twitterアプリの登録でコールバックを指定しておかないとエラーになるのか。。。」
しかし、コールバックも登録済なんだけどなぁ。。。

「OminiAuth」と「Twitter」と「Rails」で同じようなエラーを探すが解決しない。

う〜ん。

パーフェクト Ruby on Rails
すがわら まさのり 前島 真一 近藤 宇智朗 橋立 友宏
技術評論社
売り上げランキング: 775

しかし、写経ばかりで内容をよく理解できていないことが最大の問題だな。
と思い直して、パーフェクトシリーズの「パーフェクトRuby」も買ってくる。
「すがわら」さんが言っていたのだが、そもそも「パーフェクトRuby」を書いているときに、書き切れなかった分を「パーフェクトRuby on Rails」で出版することになったと。
「たのしいRuby」ぐらいは昔に読んだことがあるのだが、Rubyをきっちり学んだ覚えはないなと反省しつつ、「パーフェクトRuby」をめくると、やはりためになる情報満載です。
これはやっぱり熟読する価値あるなぁと思いながら、読んでいたら、
「おぉ!これがエラーの原因だったかぁ!」
と気づいた。

原因はYAMLの書き方を知らなかったことだった。
「コード行頭のインデントは、プログラマーがコードを読みやすくするためのもの」
という思い込みが合って、YAMLなのにインデントを適当に書いていたのが問題だったのだ。YAMLのインデントはタブが使えず、半角スペース2文字でなければならなかったのだ。知らんかった。。。道理で。
具体的にはp173の”secret.yml”ファイルの書き方を間違えていたのだ。印刷上の見た目が同じなのだが、これではYAMLファイルとして機能していなかったのだ。

パーフェクトRuby (PERFECT SERIES 6)
Rubyサポーターズ すがわら まさのり 寺田 玄太郎 三村 益隆 近藤 宇智朗 橋立 友宏 関口 亮一
技術評論社
売り上げランキング: 10,972

というわけで、Twitter認証もうまく通り、「パーフェクトRuby on Rails」のチュートリアルを順調に進んでいるところ。
「パーフェクトRuby」と「パーフェクトRuby on Rails」は2冊で1冊と思った方がいいかもなと思った次第です。

コメント