Facebook 認証の設定
Facebook 設定ミス編
実際に本番環境にデプロイして、Facebook 認証をしようとすると、「指定されたURLは、アプリケーションの設定で許可されていません。」で散々エラー吐かれた。
これは、Facebook developers サイトの、下記項目を修正した。
- AppDomains : 空欄にすると怒られた。localhost とかは例外的な扱いらしい?「www.white-azalea.net」でアプリケーション展開するなら「white-azalea.net」を指定。
- サイトURL,Mobile Site URL : 「https://www.white-azalea.net」を指定。少しでも AppDomain と違うと上記エラー(保存時にエラーにならない駄目仕様)。
多分これはリクエスト元か何かとして認識されてる臭い。
Application の OAuth エラー
Facebook にリクエストする際のURL生成で、callback の URL の箇所を、http/https で間違うとかなり苦労する。
というのは、なぜかここは「サイトURL,Mobile Site URL」で https を指定してるのに、http のURLを受ける(しかもリダイレクトする)。
結果、サーバ側で「httpのサイトなんかねーよ!」と蹴られる。
これも実行時エラーで、これを食うとデプロイし直し。
後、MySQL で相当手を焼いた。
テスト環境が h2sql だったのが災いしたのだが、 Chef Cookbook: mysql - Opscode Community でインストールしたら文字コードが latin1 で設定される上、エンコードを選ぶ設定が存在しない。
結果、DBやら何やらがすべて latin1 で、実行してみると日本語が化ける化ける。
後、JDBCも ?characterEncoding=utf8
を付けないとエラーになる。
再コンパイルとデプロイが一番時間がかかるんだ....
マジで、utf-8 以外がデフォルトとか簡便願いたかった。
あと、Apache の mod_proxy による転送だけど、URL パラメータ中の URL エンコードが半端に解けて送信されてくる。
proxy なのにデータを改竄する時点でバグにしか見えないのだが、ProxyPass / http://127.0.0.1:8000/ nocanon
の様に nocanon を付けるとこの挙動が止まる。
こんなのデフォルトにすべきな気がするが。。。。