Facebook graph api 带有Facebook的MVC4OAuth不返回电子邮件地址

Facebook graph api 带有Facebook的MVC4OAuth不返回电子邮件地址,facebook-graph-api,asp.net-mvc-4,oauth-2.0,facebook-oauth,Facebook Graph Api,Asp.net Mvc 4,Oauth 2.0,Facebook Oauth,我正在试验这个月发布的MVC4OAuth。 有人能告诉我在哪里可以添加电子邮件地址,这样我就可以用用户属性存储电子邮件地址了吗 我需要能够发送一封欢迎电子邮件,但不知道从何处开始使用现成的MVC4OAuth 理想情况下,成功登录后,我希望在控制器中接收来自Facebook的用户信息,并将其放入表格中,以便脱机进程可以发送欢迎电子邮件 谢谢, Victor这是因为Facebook允许其用户指定哪些数据与第三方身份验证服务共享,例如您的网站Victor。默认情况下,我相信电子邮件地址(是的,你可以在

我正在试验这个月发布的MVC4OAuth。 有人能告诉我在哪里可以添加电子邮件地址,这样我就可以用用户属性存储电子邮件地址了吗

我需要能够发送一封欢迎电子邮件,但不知道从何处开始使用现成的MVC4OAuth

理想情况下,成功登录后,我希望在控制器中接收来自Facebook的用户信息,并将其放入表格中,以便脱机进程可以发送欢迎电子邮件

谢谢,
Victor

这是因为Facebook允许其用户指定哪些数据与第三方身份验证服务共享,例如您的网站Victor。默认情况下,我相信电子邮件地址(是的,你可以在facebook账户上添加多个)不是比亚迪默认的共享地址。用户必须进入并明确地与第三方共享他们的电子邮件地址——我认为从来没有人使用过这一点

Facebook强制共享的唯一“强制性”共享数据是全名(例如“埃里克·邓肯”)。其他所有内容都是可选的,用户可以共享

例如,我的Facebook设置只共享我的生日,而不共享生日。我也有我的Facebook设置来分享我的兴趣,但不是我的电子邮件

因此,您必须为保证的内容编写代码——Facebook的显示名称(在MVC4.0OAuth中称为“用户名”)。其他一切都不能保证


我在OAuth应用程序(包括Facebook connect)中所做的是在与第三方成功验证后,在回调url页面(例如MVC 4.0中的externalloginconconfirmation.cshtml)上,我会要求用户输入他们的显示名称、电子邮件地址、出生日期,等等,并在自定义视图模型上使用标准数据注释来设置这些字段。

为了让Facebook返回电子邮件,您必须在范围中指定它。例如,使用JSSDK,您可以执行以下操作

return FB.login(function(response) {
    if (response.authResponse) {
      return window.location = '/auth/facebook/callback';
    }
  }, {scope: 'email,user_likes'}
);