android - 无法获取 FB 用户生日,android?

标签 android facebook

我正在尝试获取 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"}

这里是不是少了什么?

最佳答案

默认情况下,Facebook 不会给用户生日。您必须使用扩展权限将您的应用提交给 facebook 进行审核才能获取用户的生日。 p>

看这里:

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

关于android - 无法获取 FB 用户生日,android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32475977/

相关文章:

android - 为什么在隐藏的 fragment 中调用 onResume()?

javascript - Appcelerator 错误 | socket 挂断

facebook - 如何获取多个 ids 的 Facebook 提要 iOS graph api

Facebook 应用程序 : Additional permissions

ajax - AJAX 驱动页面中的 Facebook “Like” 按钮 - Firefox 错误

android - 下载android 2.3.4 API

android - ListView 中的另一个 ArrayIndexOutOfBoundsException

android - 意外恢复 "package name"而已经在 '' 包名称中恢复“Android 中的错误

javascript - facebook 按钮不调用 onClick() - ReactJS

swift - PFFacebookUtils.logInInBackgroundWithReadPermissions block 返回 user = nil 和 error = nil