Dotnetopenauth, получить электронную почту из области Facebook - PullRequest
4 голосов
/ 11 января 2012

У меня есть вопрос, на который я неожиданно не смог найти ответ при поиске.

Если я запрашиваю электронную почту пользователей с Facebook, например:

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

Как мне ее получить?Я не смог найти четкую опцию для этого в FacebookGraph.

Ответы [ 3 ]

3 голосов
/ 28 февраля 2012

Насколько я могу судить, объект FacebookGraph, который есть в примерах из DotNetOpenAuth, не поддерживает изменение полей, которые вы получаете. Однако, поскольку запрашиваемое WebRequest возвращает строку JSON, вы можете проанализировать ее самостоятельно (или использовать другой анализатор JSON). Это именно то, что я сделал, используя NewtonSoft.Json.dll :

//as part of the uri for the webrequest, include all the fields you want to use
var request = WebRequest.Create("https://graph.facebook.com/me?fields=email,name&access_token=" + Uri.EscapeDataString(authorization.AccessToken));
using (var response = request.GetResponse())
{
    using (var responseStream = response.GetResponseStream())
    {
        System.IO.StreamReader streamReader = new System.IO.StreamReader(responseStream, true);
        string MyStr = streamReader.ReadToEnd();
        JObject userInfo = JObject.Parse(MyStr);

        //now you can access elements via: 
        // (string)userInfo["name"], userInfo["email"], userInfo["id"], etc.
    }
}

Обратите внимание, что вы указываете, какие поля вы хотите отправить обратно как часть URI WebRequest. Доступные поля можно найти на https://developers.facebook.com/docs/reference/api/user/

2 голосов
/ 12 июня 2012

Использование DNOA Этот ответ сделал это для меня.

Просто добавил следующее:

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

client.RequestUserAuthorization(scope);

и следующее к графику Facebook.1009 *

0 голосов
/ 11 января 2012

То, что вы написали выше, похоже, требует от пользователя авторизации, чтобы ваше приложение могло получать электронную почту при запросе объекта пользователя.Чтобы запросить объект пользователя, вы делаете HTTP Get on https://graph.facebook.com/me.Попробуйте это в инструменте Graph API Explorer на https://developers.facebook.com/tools/explorer

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