AuhtenticationManager.GetExternalInfoAsync上缺少facebook电子邮件字段

时间:2015-07-30 09:53:29

标签: c# facebook facebook-graph-api owin

你们有没有在facebook api v2.4上遇到过一些问题

每当我调用AuthenticationManager.GetExternalInfoAsync时,info只返回ID和Name。在api v2.3上我们的一些应用程序没有发生这种情况。我还在nuget上更新了facebook包,但仍然没有运气

我也尝试通过fiddler(graph.facebook.com/me)查看facebook返回的内容,但我只能在返回的JSON上看到两个字段。

我感谢任何帮助。提前谢谢!

2 个答案:

答案 0 :(得分:0)

看看我的回答

您现在必须使用Graph API v2.4指定每个字段。

答案 1 :(得分:0)

谢谢你们,

我有点解决这个问题,我需要制作其他代码

        var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
        if (loginInfo == null)
        {
            return RedirectToAction("Login");
        }

        var fbAccessToken = loginInfo.ExternalIdentity.Claims.Where(a => a.Type == "FacebookAccessToken").FirstOrDefault().Value;

        var fbacc = ApiHelper<ExternalAccount>.GetByFullAddress(string.Format(@"https://graph.facebook.com/me?access_token={0}&fields=name,email,first_name,middle_name,last_name", fbAccessToken), null);

我希望早日会有更清洁的方法。再次,谢谢大家!