我的权限范围在此定义:
var loginUrl = fb.GetLoginUrl(new
{
client_id = ConfigurationManager.AppSettings["facebookAppID"].ToString(),
client_secret = ConfigurationManager.AppSettings["facebookAppSecret"].ToString(),
redirect_uri = RedirectUri.AbsoluteUri,
response_type = "code",
scope = "public_profile, email, user_friends, user_about_me, user_birthday, user_education_history, user_work_history, user_location" // Add other permissions as needed
});
然后我以这种方式获取访问令牌:
var fb = new FacebookClient();
fb.AppId = ConfigurationManager.AppSettings["facebookAppID"].ToString();
fb.AppSecret = ConfigurationManager.AppSettings["facebookAppSecret"].ToString();
dynamic result = fb.Post("oauth/access_token", new
{
client_id = ConfigurationManager.AppSettings["facebookAppID"].ToString(),
client_secret = ConfigurationManager.AppSettings["facebookAppSecret"].ToString(),
redirect_uri = RedirectUri.AbsoluteUri,
code = code
});
然后我以这种方式将我的访问令牌分配给Facebook客户端:
fb.AccessToken = accessToken;
我有一个自定义类来从Facebook SDK中检索数据:
dynamic userDetails = fb.Get("me", new { fields = "name, email, gender, birthday, education, work" });
dynamic userEducation = fb.Get("me?fields=education");
//2. Store details to be used
var facebookUserDetails = new UserFacebookDetails();
facebookUserDetails.Name = userDetails.name;
facebookUserDetails.Email = userDetails.email;
facebookUserDetails.Gender = userDetails.gender;
facebookUserDetails.SetBirthDayVals(userDetails.birthday);
我只获取姓名,电子邮件和性别的数据。我无法获得有关生日,教育或工作的信息。我在Facebook API Explorer上查看相同的端点,然后获取信息。怎么了?有人可以帮帮我吗?
答案 0 :(得分:1)
我想我已经找到了解决这个问题的方法。问题的根源在于Facebook。我没有提交我的应用程序进行审核,通常,这三个范围是在使用之前需要提交的集合中。
答案 1 :(得分:0)
请检查你的FB app => APP Review =>批准的项目。 最初支持email,public_profile,user_friends。 所有其他必需的登录范围将不会返回! 当您将应用程序公开后,在登录其他帐户时,您可以在与应用程序所有者登录相同时检索正确的权限。 如果你想获得更多许可......你必须提交给FB。 这个问题也是fxxx我1周:))