无法获得FB用户生日,android?

Posted

技术标签:

【中文标题】无法获得FB用户生日,android?【英文标题】:Unable to get FB user birthday, android? 【发布时间】:2015-09-09 09:33:25 【问题描述】:

我正在尝试获取 facebook 用户的一些个人资料信息,例如姓名、电子邮件、生日和位置。我无法获取用户的生日。

callbackManager = CallbackManager.Factory.create();
    loginManager=LoginManager.getInstance();
    loginManager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() 
        @Override
        public void onSuccess(LoginResult loginResult) 
            // App code
            accessToken = AccessToken.getCurrentAccessToken();
            getProfileInformationFacebook(accessToken);
            Log.e("login res", loginResult.toString());
        

        @Override
        public void onCancel() 
            // App code
        

        @Override
        public void onError(FacebookException exception) 
            // App code
        
    );

读取权限:

loginManager.logInWithReadPermissions(this,
                Arrays.asList("user_about_me", "user_birthday", "user_location", "email"));

图形 API 请求:

public void getProfileInformationFacebook(AccessToken accToken) 
    GraphRequest request = GraphRequest.newMeRequest(
            accToken,
            new GraphRequest.GraphJSONObjectCallback() 
                @Override
                public void onCompleted(
                        JSONObject object,
                        GraphResponse response) 
                    Log.e("object", object.toString());
                    String fbId = null;
                    String fbBirthday = null;
                    String fbLocation = null;
                    String fbEmail = null;
                    String fbName = null;

                    try 
                        fbId = object.getString("id");
                        fbEmail = object.getString("email");
                        fbName = object.getString("name");
                        fbBirthday = object.getString("birthday");
                        JSONObject jsonObject = object.getJSONObject("location");
                        fbLocation = jsonObject.getString("name");
                     catch (JSONException e) 
                        e.printStackTrace();
                     
                
            );
    Bundle parameters = new Bundle();
    parameters.putString("fields", "id,name,email,location,birthday");
    request.setParameters(parameters);
    request.executeAsync();

图形 API 响应:

"id":"10153618779823958","email":"wishygupta@yahoo.com","name":"Wishy Gupta"

这里有什么遗漏吗?

【问题讨论】:

【参考方案1】:

Facebook 默认不给用户生日。您必须使用扩展权限将您的应用提交给 Facebook 审核才能访问用户的生日。 p>

看这里:

https://developers.facebook.com/docs/facebook-login/permissions/v2.4

【讨论】:

这就是问题所在。因为之前他们曾经提供过生日。

以上是关于无法获得FB用户生日,android?的主要内容,如果未能解决你的问题,请参考以下文章

使用 fb.api 的 Facebook 用户位置

无法在新的 FB 图 API (2.5) 上获得喜欢的类别

使用 Google API 获取用户生日

带圆角的 Android 圆形进度条

就像无法获得FB Like按钮在Dreamweaver中工作

无法获取 Facebook 用户信息(生日、工作、教育)