如何使用DotNetOpenAuth登录Facebook
本文关键字:Facebook 登录 DotNetOpenAuth 何使用 | 更新日期: 2023-09-27 18:27:25
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
我
不是专家,但不是因为你总是有一个新的Facebook客户端,从来没有请求过用户授权吗? 你的工作流程对我来说似乎很奇怪...
这有什么区别吗:
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);
}
}
}