繁体   English   中英

使用Graph Request android的Facebook用户生日?

[英]Facebook user birthday using Graph Request android?

这就是我要获取用户详细信息的目的。 我能够获取FbId,用户名和用户性别,我也想获取用户生日。请检查以下代码,谢谢:-

GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(JSONObject user, GraphResponse response) {
                            // Application code
                            if (AccessToken.getCurrentAccessToken() != null) {
                                if (user != null) {
                                    Log4Android.e(FaceBookLogin.this, user.toString());
    //                                Log.e("onCompleted ", "  1= > " + new Gson().toJson(user));
                                    facebookUser = new Gson().fromJson(user.toString(), FacebookUser.class);
                                    try {
    //                                    Log.e("onCompleted ", "  2= > " + new Gson().toJson(user));
                                        Log.e("onCompleted ", "  22= > " + new Gson().toJson(facebookUser));
                                        if (facebookUser.getEmail() != null || !facebookUser.getEmail().equals("")) {
                                            checkUserStatus(context, facebookUser.getId());
                                        } else {
                                            UtilitySingleton.getInstance(context).ShowToast(R.string.email_error);
                                        }
                                    } catch (Exception e) {
                                        e.printStackTrace();
                                        facebookUser = getUsableData(response);
                                        UtilitySingleton.getInstance(context).ShowToast(R.string.email_error);
                                    }
                                }
                            }
                        }
                    });

            Bundle parameters = new Bundle();
    //        parameters.putString("fields", "id,name,email,first_name,last_name");
            parameters.putString("fields", "id,name,email,gender,birthday,first_name,last_name");
            request.setParameters(parameters);
            request.executeAsync();

为了获得许可,请转到您的Facebook仪表板>应用程序审查>开始提交>并选择user_birthday

您可以按照以下代码行进行操作-

if (AccessToken.getCurrentAccessToken() != null) {
     GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(),
                new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(JSONObject user, GraphResponse response) {
                        if (response != null && response.getJSONObject() != null) {

                            try {
                                String birthDate = response.getJSONObject().getString("birthday");
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                });

        Bundle parameters = new Bundle();

        parameters.putString("fields","id,name,email,gender,birthday,first_name,last_name");
        request.setParameters(parameters);
        request.executeAsync();
}

而且,在发送GraphRequest之前,应始终检查访问令牌。

您要求什么权限? 要获得用户生日,必须获得许可:“ user_birthday”。

这解决了我的难题:

String BIRTHDATE = "user_birthday";

     public static final String[] FACEBOOK_PERMISSIONS = {ValueKeys.PUBLIC_PROFILE, ValueKeys.EMAIL, BIRTHDATE};

LoginManager.getInstance().logInWithReadPermissions((Activity) context, Arrays.asList(FACEBOOK_PERMISSIONS));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM