Ruby on rails 如何确保Facebook用户提供他们的电子邮件? 问题

Ruby on rails 如何确保Facebook用户提供他们的电子邮件? 问题,ruby-on-rails,facebook,devise,omniauth,facebook-oauth,Ruby On Rails,Facebook,Devise,Omniauth,Facebook Oauth,我正在开发的网站是一个Rails应用程序,它允许用户使用他们的Facebook帐户登录 在FacebookAuth对话框页面上,他们被要求提供基本信息和电子邮件。然后将电子邮件保存到数据库中 然而,最近我注意到有很多用户的电子邮件是零或零。我用OpenGraphAPI检查了他们的权限https://graph.facebook.com/{id}/权限。他们中的一些人授予了电子邮件权限,而另一些人没有 我不知道这怎么会发生 我的实验 1. 尽管他说: 如果您使用的是增强的身份验证对话框,则以下权限

我正在开发的网站是一个Rails应用程序,它允许用户使用他们的Facebook帐户登录

在FacebookAuth对话框页面上,他们被要求提供基本信息和电子邮件。然后将电子邮件保存到数据库中

然而,最近我注意到有很多用户的电子邮件是零或零。我用OpenGraphAPI检查了他们的权限https://graph.facebook.com/{id}/权限。他们中的一些人授予了电子邮件权限,而另一些人没有

我不知道这怎么会发生

我的实验 1. 尽管他说:

如果您使用的是增强的身份验证对话框,则以下权限在身份验证流中不可由用户撤消。 如果您作为首次身份验证的一部分向用户请求这些权限,则用户必须授予这些权限才能继续并授权您的应用程序

在“身份验证”对话框页上https://www.facebook.com/dialog/permissions.request?app_id=...&display=page&next=...&response_type=code&perms=email&fbconnect=1,我可以删除perms=email参数,则不会请求电子邮件

如果我使用此对话框登录,应用程序将不会收到任何电子邮件地址

2. 在应用程序>设置>权限中,我尝试设置一些不需要的权限。在我进行实验之前,设置是空的

但这些设置对身份验证过程没有影响

问题
考虑到Rails+Devise+Omniauth的设置,是否可以确保用户在登录前授予电子邮件权限?

$permissions=$facebook->api/me/权限; 如果数组_key_存在'email',$permissions['data'][0]{ //允许被授予! }否则{ //我们没有得到许可
}

Hi@dythffvrb,谢谢你的回答。我知道检查用户权限的api。但是登录不能在Facebook端停止吗?