【问题标题】:DotNetOpenAuth Get Facebook Email AddressDotNetOpenAuth 获取 Facebook 电子邮件地址
【发布时间】:2011-03-18 18:39:26
【问题描述】:

我有以下代码,其中包含名字/姓氏。我知道电子邮件是一个扩展权限,但是我需要修改什么来请求扩展权限?

如何通过DotNetOpenAuth 获取经过身份验证的 Facebook 用户的电子邮件?

        fbClient = new FacebookClient
        {
            ClientIdentifier = ConfigurationManager.AppSettings["facebookAppID"],
            ClientSecret = ConfigurationManager.AppSettings["facebookAppSecret"],
        };

        IAuthorizationState authorization = fbClient.ProcessUserAuthorization();
        if (authorization == null)
        {
            // Kick off authorization request
            fbClient.RequestUserAuthorization();

        }
        else
        {
            var request = WebRequest.Create("https://graph.facebook.com/me?access_token=" + Uri.EscapeDataString(authorization.AccessToken));
            using (var response = request.GetResponse())
            {
                using (var responseStream = response.GetResponseStream())
                {
                    var graph = FacebookGraph.Deserialize(responseStream);

                    // unique id for facebook based on their ID
                    FormsAuthentication.SetAuthCookie("fb-" + graph.Id, true);

                    return RedirectToAction("Index", "Admin");
                }
            }
        }

        return View("LogOn");

【问题讨论】:

    标签: facebook dotnetopenauth


    【解决方案1】:

    添加以下位:

                var scope = new List<string>();
                scope.Add("email");
                fbClient.RequestUserAuthorization(scope);
    

    【讨论】:

    • 是的 - 范围是 facebook 权限
    • 请注意,在较新版本的 DotNetOpenAuth.ApplicationBlock 中,ClientSecret 不存在。现在应该如下: FacebookClient fbClient = new FacebookClient { ClientIdentifier = "appId", ClientCredentialApplicator = ClientCredentialApplicator.PostParameter("appSecret") };
    【解决方案2】:

    如果您使用 VS2012 内置的 oauth 提供程序,您只需要更新您的 oauth 包。请参阅以下链接上的最后一篇文章:http://forums.asp.net/t/1847724.aspx/1。我唯一无法检索的电子邮件是 MS Live。目前我使用 facebook、google 和 yahoo。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多