我正在使用Facebook SDK来获取用户的电子邮件。我在Startup.Auth.css类中编写以下代码:
var x = new FacebookAuthenticationOptions();
x.Scope.Add("email");
x.AppId = "421656951358309";
x.AppSecret = "5a2e5ccf163fe6918b6d6fdc8dda5184";
x.Provider = new FacebookAuthenticationProvider()
{
OnAuthenticated = async context =>
{
context.Identity.AddClaim(new System.Security.Claims.Claim("FacebookAccessToken", context.AccessToken));
}
};
x.SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie;
app.UseFacebookAuthentication(x);
在控制器中,我使用两种方法获取电子邮件,但两种方法均失败。方法如下:
方法1:默认情况下,执行第一行后,变量信息具有电子邮件属性。但是它总是返回null。
var info = await AuthenticationManager.GetExternalLoginInfoAsync();
string email = info.Email;
方法2:我使用以下代码,它也会返回null。
var fb = new FacebookClient(access_token.Value);
dynamic me = fb.Get("email");
string email = me.email;
我错过了什么 ?或我可以使用另一种方法。我可以获取其他信息,例如用户名,但不能获取电子邮件。
尝试修改方法2,如下所示:
var fb = new FacebookClient(access_token.Value);
dynamic me = fb.Get("/me?fields=email");
string email = me.email;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句