Facebook登录回调哈希文档
我使用Omniauth与设计为一个web应用程序,我用Rails写认证通过Facebook用户3.0.4Facebook登录回调哈希文档
我模仿它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验证其导轨应用程序的人。
看一看Facebook permissions reference,这是您可以向用户请求的权限列表。这允许您请求特定的事情,如果用户授予权限,那么您可以保证该字段存在。我还建议您阅读他们的authentication docs,以便了解用户体验。
一旦你知道你想你可以更新你的色器件配置(配置/初始化/ devise.rb)什么权限,以便能想出请求的权限,你需要:
config.omniauth :facebook, FACEBOOK_APP_ID, FACEBOOK_APP_SECRET, {:scope => 'offline_access,email,user_birthday'}
嗯,是的,我认为你说对了,要求获得许可是正确的。实际上,我惊讶于我的电子邮件信息在回调哈希中 - 我的电子邮件显示设置在Facebook中非常受限制,并且仍然在回调哈希中提供。 – 2011-03-03 00:42:30
Devise默认传递电子邮件许可,所以当你告诉Facebook允许你的应用程序,你明确告诉Facebook它可以给这个特定的应用程序你的电子邮件地址。 – 2011-03-03 00:49:55
AH所以这就是为什么 - 我注意到帐户 - >设置 - >隐私设置 - >应用程序和网站,“给我发电子邮件”是我的应用程序和许多其他应用程序的必填字段。我不知道Devise在默认情况下请求这个信息,谢谢! – 2011-03-03 00:55:53
我已经通过这些页面看起来(我不能把它们放在我原来的帖子里,因为我还是个SO新手): http://developers.facebook.com/docs/reference/api/user/ http://developers.facebook .com/docs/guides/web /#login – 2011-03-02 20:44:50
这可能有助于https://github.com/intridea/omniauth/wiki/Auth-Hash-Schema – aperture 2011-03-02 22:59:28