Android получить адрес электронной почты facebook

я выполнил вход в facebook, но я не знаю, как получить адрес электронной почты и отобразить его в другой форме

Итак, это код

private void nextActivity(Profile profile){
    if(profile != null){
        Intent main = new Intent(LogInTo.this, SetUsername.class);
        main.putExtra("name", profile.getFirstName());
        main.putExtra("surname", profile.getLastName());
        //main.putExtra("email", profile.get());
        main.putExtra("imageUrl", 
        profile.getProfilePictureUri(200,200).toString());
        startActivity(main);
        finish();
    }
}

Это мой обратный вызов

    LoginButton loginButton = (LoginButton)findViewById(R.id.loginButton);
    FacebookCallback<LoginResult> callback = new 
    FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            Profile profile = Profile.getCurrentProfile();
            nextActivity(profile);
            Toast.makeText(getApplicationContext(), "Logging in...", Toast.LENGTH_SHORT).show();

         }

        @Override
        public void onCancel() {
        }

        @Override
        public void onError(FacebookException e) {
        }
    };
    loginButton.setReadPermissions(Arrays.asList("user_friends"));
    loginButton.registerCallback(callbackManager, callback);

И это код в другой форме, где показан адрес электронной почты, который вы получаете от facebook

    Bundle inbundle = getIntent().getExtras();
    String name = inbundle.get("name").toString();
    String surname = inbundle.get("surname").toString();

    FbFullname = (EditText) findViewById(R.id.fbfullname);
    FbFullname.setText("" + name + " " + surname);

    FbUsername = (EditText) findViewById(R.id.fbusername);
    FbType = (EditText) findViewById(R.id.fbtype);
    FbEmail = (EditText) findViewById(R.id.fbemail);

person Meng    schedule 20.04.2017    source источник
comment
Вы не запрашивали у пользователя разрешение на чтение его электронной почты.   -  person CBroe    schedule 20.04.2017
comment
я должен добавить это здесь? loginButton.setReadPermissions(Arrays.asList(user_friends));   -  person Meng    schedule 20.04.2017
comment
Шармейн Шейн Амансек Синенс, вы уже получили письмо? у меня тоже такая проблема   -  person Lolly Lun    schedule 28.09.2017


Ответы (1)


loginButton.setReadPermissions("public_profile email");` 

добавьте эту строку после создания loginButton.

и для получения подробностей

GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
        @Override
        public void onCompleted(JSONObject object, GraphResponse response) {

            JSONObject json = response.getJSONObject();
            try {
                if (json != null) {

                    JSONObject data = json.getJSONObject("picture").getJSONObject("data");
                    String name=json.getString("name");
                    String email= json.getString("email");
                    String picUrl=data.getString("url");
                }

            } catch (JSONException e) {

            }
        }
    });
person D.J    schedule 20.04.2017
comment
я уже добавил это, но как его получить и отобразить в другой форме? - person Meng; 20.04.2017
comment
yourtextview.setText(email) в состоянии onComplete() - person D.J; 20.04.2017