Как войти в Facebook, используя DotNetOpenAuth - PullRequest
1 голос
/ 09 марта 2012
var facebookClient = new FacebookClient
{
    ClientIdentifier = "appId",
    ClientSecret = "appSecret"
};
IAuthorizationState authorization = facebookClient.ProcessUserAuthorization();
if (authorization == null)
{
    // Kick off authorization request
    facebookClient.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);
            lblFacebookUserName.Text = HttpUtility.HtmlEncode(graph.Name);
        }
    }
}

строка

IAuthorizationState authorization = facebookClient.ProcessUserAuthorization();

всегда возвращается null

1 Ответ

1 голос
/ 09 марта 2012

Я не эксперт, но не потому ли, что у вас всегда есть новый FacebookClient, который никогда не запрашивал авторизацию пользователя? Ваш рабочий процесс кажется мне странным ...

Имеет ли это какое-либо значение:

var facebookClient = new FacebookClient
{
    ClientIdentifier = "appId",
    ClientSecret = "appSecret"
};
// Kick off authorization request, as have a new client that needs to be authorised
facebookClient.RequestUserAuthorization();
// get the result of the authorization
IAuthorizationState authorization = facebookClient.ProcessUserAuthorization();
if (authorization == null)
{
    //throw not authorized exception or whatever
}
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);
            lblFacebookUserName.Text = HttpUtility.HtmlEncode(graph.Name);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...