DotNetOpenAuth Получить адрес электронной почты Facebook - PullRequest
10 голосов
/ 18 марта 2011

У меня есть следующий код, где его захватывает Имя / Фамилия.Я понимаю, что электронная почта - это расширенное разрешение, но что мне нужно изменить, чтобы запросить расширенные разрешения?

Как получить электронную почту аутентифицированного пользователя Facebook через DotNetOpenAuth?

        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");

Ответы [ 2 ]

11 голосов
/ 18 марта 2011

Добавьте следующие биты:

            var scope = new List<string>();
            scope.Add("email");
            fbClient.RequestUserAuthorization(scope);
1 голос
/ 07 марта 2013

Если вы используете встроенные oauth-провайдеры VS2012, вам просто нужно обновить пакет oauth.См. Последний пост по следующей ссылке: http://forums.asp.net/t/1847724.aspx/1. Единственное письмо, которое я не могу получить, - это MS Live.В настоящее время я использую Facebook, Google и Yahoo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...