Rails 3.0.4を使用して作成しているWebアプリのFacebook経由でユーザーを認証するために、DeviseでOmniauthを使用しています
Ryan Bates の Railscasts をモデルにしました。
http://railscasts.com/episodes/235-omniauth-part-1
http://railscasts.com/episodes/236-omniauth-part-2
この時点で、自分の Facebook アカウントで自分のサイトにログインし、コールバック ハッシュからメールを取り出すことができます。これは次のようになります。
request.env["omniauth.auth"]
{"user_info"=>
{"name"=>"Eric Hu",
"urls"=>
{"Facebook"=>"http://www.facebook.com/...", "Website"=>nil},
"nickname"=>"...",
"last_name"=>"Hu",
"first_name"=>"Eric"},
"uid"=>"...",
"credentials"=>
{"token"=> "..."},
"extra"=>
{"user_hash"=>
{"name"=>"Eric Hu",
"timezone"=>-8,
"gender"=>"male",
"id"=>"...",
"last_name"=>"Hu",
"updated_time"=>"2011-02-21T17:46:19+0000",
"verified"=>true,
"locale"=>"en_US",
"link"=>"http://www.facebook.com/...",
"email"=>"...",
"first_name"=>"Eric"}},
"provider"=>"facebook"}
(replaced some fields with "..." for my own privacy)
現在、このフィールドを使用してユーザーのメールアドレスを取得しています
request.env["omniauth.auth"]["user_info"]["extra"]["email"]
コールバック ハッシュがユーザーの設定によって異なるかどうかはわかりません。Facebook でメールの表示設定を実際に制限しましたが、それでも表示されます。私のコードがこのハッシュで考えられるバリエーションを確実に処理できるようにするために、この Facebook ログイン コールバック ハッシュがどのように見えるか、またどのように変化するかについてのリファレンスを見つけたいと思います。これまでのところ、SO または Facebook の開発者向けドキュメントには何も見つかりませんでした。
質問: Facebook ログイン コールバック ハッシュの公式リファレンスはありますか? すべてのユーザーに同じハッシュ要素がすべて存在するとは思いたくありません。Facebook と Omniauth を使用して自分の Rails アプリを認証したい他の人のために、ここにできるだけ多くの情報を含めました。