Facebook android SDK4.0获取邮件地址

时间:2015-04-07 06:10:20

标签: android facebook facebook-graph-api

Facebook已将API更改为4.0 以及如何获取用户邮件地址 因为新类被称为profile无法得到它。 它可能会从图形API回调?

   private void GraphAPIprofile() {
        GraphRequest request = GraphRequest.newMeRequest(
                AccessToken.getCurrentAccessToken(),
                new GraphRequest.GraphJSONObjectCallback() {
                    @Override
                    public void onCompleted(
                            JSONObject object,
                            GraphResponse response) {
                        // Application code
                        Log.i("Graph API", response.toString());
                        Log.i("User Mail", object.optString("email"));

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

我认为我有问题.. 请帮助,谢谢

1 个答案:

答案 0 :(得分:0)

试试这段代码: -

if (Session.getActiveSession() == null
        || Session.getActiveSession().isClosed()) {
    Session.openActiveSession(this, true, new StatusCallback() {

        @Override
        public void call(Session session, SessionState state,
                Exception exception) {
            System.out.println("State= " + state);

            if (session.isOpened()) {
                System.out.println("Token=" + session.getAccessToken());
                Request.executeMeRequestAsync(session,
                        new GraphUserCallback() {
                            @Override
                            public void onCompleted(GraphUser user,
                                    Response response) {
                                if (user != null) {
                                    System.out.println("User=" + user);

                                }
                                if (response != null) {
                                    System.out.println("Response="
                                            + response);
                                    Toast.makeText(FBConnect.this,
                                            response.toString(),
                                            Toast.LENGTH_LONG).show();
                                }
                            }
                        });
            }
            if (exception != null) {
                System.out.println("Some thing bad happened!");
                exception.printStackTrace();
            }
        }
    });
}

将此代码写入您活动的onResume或您想要访问用户数据的任何位置。