【发布时间】:2017-08-27 08:58:13
【问题描述】:
我正在开发网络应用程序,我需要在其中获取有关 facebook 用户的完整信息。 OAUTH2 登录成功。但在那之后,当我使用提供的访问令牌调用graph.facebook.api 时,我只得到 ID、姓名和图片。
问题是如何从 facebook 获取完整的用户资料?
在 Startup.Auth.cs 我有以下代码:
var facebookAuthOptions = new FacebookAuthenticationOptions()
{
AppId = "APP_ID_HERE",
AppSecret = "APP_SECRET_HERE",
Provider = new FacebookAuthenticationProvider()
{
OnAuthenticated = (context) =>
{
context.Identity.AddClaim(new System.Security.Claims.Claim("urn:facebook:accesstoken"
, context.AccessToken
, ClaimValueTypes.String
, "Facebook"));
context.Identity.AddClaim(new Claim("urn:facebook:email"
, context.AccessToken
, ClaimValueTypes.Email
, "Facebook"));
context.Identity.AddClaim(new Claim("urn:facebook:about"
, context.AccessToken
, ClaimValueTypes.String
, "Facebook"));
return Task.FromResult(0);
}
}
};
app.UseFacebookAuthentication(facebookAuthOptions);
在我的控制器中,我这样调用 facebook API:
var apiRequestUri = new Uri("https://graph.facebook.com/v2.8/me?fields=email,name,about,picture&access_token=" + accessToken);
var webClient = new System.Net.WebClient();
var json = webClient.DownloadString(apiRequestUri);
var profile = JsonConvert.DeserializeObject<FacebookProfile>(json);
但我得到的只是身份证、姓名和照片。 当我在图形 api 控制台中尝试类似的查询时,我可以获得所需的所有信息。 欢迎任何建议! 提前感谢您的帮助!
【问题讨论】:
标签: c# asp.net asp.net-mvc facebook-graph-api owin