Facebook C# SDK 不返回所有信息

Posted

技术标签:

【中文标题】Facebook C# SDK 不返回所有信息【英文标题】:Facebook C# SDK not returning all information 【发布时间】:2016-02-29 13:17:27 【问题描述】:

我的权限范围是这样定义的:

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 上检查了相同的端点并获得了信息。怎么了?谁能帮帮我?

【问题讨论】:

如果可以的话,你可以发送你的代码来登录fb吗 【参考方案1】:

我想我已经找到了解决这个问题的办法。问题的根源在于 Facebook。我还没有提交我的应用程序以供审核,通常,这 3 个范围在使用前需要提交的集合中。

【讨论】:

【参考方案2】:

请检查您的 FB 应用程序 => 应用程序审查 => 批准的项目。 email、public_profile、user_friends 都支持初始。 所有其他登录所需的范围都不会返回! 当您与应用程序的所有者登录相同时,您可能会检索到正确的权限,而在公开您的应用程序后以其他帐户登录时可能会检索到意外的权限。 如果您想获得更多权限...您必须提交给FB。 这个问题也fxxx我1周:))

App Review ScreenShot

【讨论】:

以上是关于Facebook C# SDK 不返回所有信息的主要内容,如果未能解决你的问题,请参考以下文章

Facebook JS SDK 的 FB.api('/me') 方法不返回我在 Graph API v2.4+ 中期望的字段

无法使用 Facebook C# SDK 注销 Facebook

IOS Facebook SDK:尽管授予权限,但登录不返回电子邮件

Facebook C# SDK,用图片创建事件

是否可以在不使用 iOS SDK 的情况下集成 Facebook 登录?

Facebook Android SDK 4.0:newGraphPathRequest 返回“必须使用活动访问令牌来查询有关当前用户的信息。”