无法从facebook图形api sdk v4检索用户地址



是否需要任何权限才能从facebook graph api获得用户地址?

我能够检索id,名称,电子邮件,链接,区域设置,时区,但json对象中没有地址。

请看看我的代码:

    private void getFacebookuserData(AccessToken token) {
    GraphRequest request = GraphRequest.newMeRequest(accessToken,
            new GraphRequest.GraphJSONObjectCallback() {
                @Override
                public void onCompleted(JSONObject object,
                        GraphResponse response) {
                    /**
                     * In JSONObject user_name,user_id, user_email of user
                     * logedIn.
                     */
                    try {
                        mEmail = object.getString("email");
                        appPreference.setEmail(mEmail);
                        appPreference.setFacebookemail(mEmail);
                        mUserId = object.getString("id");
                        mUserName = object.getString("name");
                        appPreference.setName(mUserName);
                        CustomAsynTask asyncTask = new CustomAsynTask(
                                HomeActivity.this, "sociallogin", "", true);
                        asyncTask.setListener(HomeActivity.this);
                        asyncTask.execute();
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            });
    Bundle parameters = new Bundle();
    parameters.putString("fields",
            "id,name,email,address,link,locale,timezone");
    request.setParameters(parameters);
    request.executeAsync();
}

Facebook对此有官方文档,请这样尝试希望你一切安好

https://developers.facebook.com/docs/graph-api/reference/user

Try This:

String name,email,key;
GraphLocation address;
private void getFacebookUserInfo() {
    Session.openActiveSession(this, true, new Session.StatusCallback() {
        @Override
        public void call(final Session sess, SessionState state,
                Exception exception) {
            session=sess;
            System.out.println("ssssssssss"+session+"    "+state);
            if (session.isOpened()) {
                        Request.newMeRequest(session,new GraphUserCallback() {
                        @Override
                        public void onCompleted(final GraphUser user,Response response) {

                            System.out.println("uuuuuuuuuuu    "+user);
                        if (user != null) {
                        try{
                        name = user.getFirstName()+" "+user.getLastName();
                        email = user.getEmail();
                        key = session.getAccessToken();
                        address = user.getLocation();
                        System.out.println("name======="+name);
                        System.out.println("email======="+email);
                        System.out.println("key========="+key);
                        Intent intent=new Intent(Sign_In.this,Mobile_Verification.class);
                        startActivity(intent);
                        finish();
                        }catch(Exception e){
                            e.printStackTrace();
                        }
                        }
                    }
            }).executeAsync();

            } else {
                System.out.println("elseeeeeeeeee");
                OpenRequest op = new Session.OpenRequest(Sign_In.this);

                List<String> permissions = new ArrayList<String>();
                op.setPermissions(permissions);
                session = new Builder(Sign_In.this).build();
                session.openForRead(op);
            }
        }
    });

最新更新