簡體   English   中英

如何使用DotNetOpenAuth登錄到Facebook

[英]How to login to facebook using DotNetOpenAuth

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

我不是專家,不是嗎,因為您始終擁有一個從未請求用戶授權的新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);
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM