Facebook C# SDK 不返回所有信息
Facebook C# SDK not returning all information
我的权限范围是这样定义的:
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;
我有一个自定义 class 从 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 上检查了相同的端点,并获得了信息。怎么了?谁能帮帮我?
我想我已经找到了解决这个问题的方法。问题的根源在于 Facebook。我没有提交我的应用程序以供审查,通常,这 3 个范围在使用前需要提交的范围内。
请查看您的FB app => APP Review => Approved Items。
初始支持电子邮件、public_profile、user_friends。
所有其他登录所需的范围都不会return!
当您以应用程序的所有者身份登录时,您可能会检索到正确的权限,而在制作您的应用程序 public 后,以其他帐户登录时,您可能会检索到意外的权限。
如果你想要更多权限...你必须提交给FB。
这个问题也困扰了我 1 周 :))
我的权限范围是这样定义的:
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;
我有一个自定义 class 从 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 上检查了相同的端点,并获得了信息。怎么了?谁能帮帮我?
我想我已经找到了解决这个问题的方法。问题的根源在于 Facebook。我没有提交我的应用程序以供审查,通常,这 3 个范围在使用前需要提交的范围内。
请查看您的FB app => APP Review => Approved Items。 初始支持电子邮件、public_profile、user_friends。 所有其他登录所需的范围都不会return! 当您以应用程序的所有者身份登录时,您可能会检索到正确的权限,而在制作您的应用程序 public 后,以其他帐户登录时,您可能会检索到意外的权限。 如果你想要更多权限...你必须提交给FB。 这个问题也困扰了我 1 周 :))