0
我主要使用来自设置Facebook登录和注册过程的MVC应用程序中的模板。我可以注册并使用Facebook登录,但是当我注册时,我想从Facebook用户那里获得更多的数据(性别,生日等),所以我不必要求他们手动完成。这将在.Net中完成,所以我试图使用Facebook .Net SDK,但我不知道如何从Visual studiio为我设置的模板代码中获取用户访问令牌。这是我的代码。看看var accessToken =? “var info”有一些数据从Facebook返回,如提供者密钥,但没有访问令牌或用户标识。下面的这个方法是在用户输入他们的Facebook凭证之后。从Facebook SDK获取Facebook用户访问令牌用于.Net的ASP.Net MVC应用程序
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
{
if (User.Identity.IsAuthenticated)
{
return RedirectToAction("Index", "Manage");
}
if (ModelState.IsValid)
{
// Get the information about the user from the external login provider
var info = await AuthenticationManager.GetExternalLoginInfoAsync();
if (info == null)
{
return View("ExternalLoginFailure");
}
var user = new ApplicationUser { UserName = model.UserName, Email = model.Email, MembershipCreated = DateTime.Now }; //{ UserName = model.UserName, Email = model.Email, MembershipCreated = DateTime.Now, Gender = model.Gender, Birthdate = birthdayDateTime };
var result = await UserManager.CreateAsync(user);
if (result.Succeeded)
{
result = await UserManager.AddLoginAsync(user.Id, info.Login);
if (result.Succeeded)
{
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
//try to create profile here
var accessToken= //need to get access token here!!!
FacebookClient client = new FacebookClient(accessToken);
dynamic fbUser = client.Get("https://www.facebook.com/" + info.DefaultUserName);
if (returnUrl == "/Account/Register")
{
returnUrl = "/Home";
}
return RedirectToLocal(returnUrl);
}
}
AddErrors(result);
}
ViewBag.ReturnUrl = returnUrl;
return View(model);
}
你如何得到令牌? – Bharat