Android Facebook集成获取电子邮件ID



在我的Android应用程序中,我完成了Facebook Integration。FaceBook登录工作正常。如何从Android中的Facebook Integration获取用户的电子邮件ID?请帮忙。预先感谢。

使用权限和此代码

     loginButton.setReadPermissions(Arrays.asList( "email","user_birthday"));

并使用图API

  private FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {

           progressDialog.dismiss();
            // App code
            GraphRequest request = GraphRequest.newMeRequest(
                    loginResult.getAccessToken(),
                    new GraphRequest.GraphJSONObjectCallback() {
                        @Override
                        public void onCompleted(
                                JSONObject object,
                                GraphResponse response) {
                            Log.e("response: ", response + "");
                            Log.e("object: ", object + "");
                                try {
                                    userfbData = new UserfbData();
                                    userfbData.facebookID = object.getString("id").toString();
                                    userfbData.email = object.getString("email").toString();
                                    userfbData.name = object.getString("name").toString();
                                    userfbData.gender = object.getString("gender").toString();
                                     userfbData.birthday=object.getString("birthday").toString();
                                    PrefUtils.setCurrentUser(userfbData,LoginActivity.this);
                                    Log.d("flist","flist"+ userfbData.flist);
                                }catch (Exception e){
                                    e.printStackTrace();
                                }
                            //  Toast.makeText(LoginActivity.this,"welcome "+userfbData.name+userfbData.email+userfbData.gender+userfbData.birthday, Toast.LENGTH_LONG).show();
                            Toast.makeText(LoginActivity.this,"welcome "+ userfbData.name, Toast.LENGTH_LONG).show();
                                Intent intent=new Intent(LoginActivity.this,LogoutActivity.class);
                                startActivity(intent);
                                finish();
                        }
                    });
            Bundle parameters = new Bundle();
            parameters.putString("fields", "id,name,email,gender, birthday");
            request.setParameters(parameters);
            request.executeAsync();
        }
        @Override
        public void onCancel() {
            progressDialog.dismiss();
        }
        @Override
        public void onError(FacebookException e) {
           progressDialog.dismiss();
            Log.d("error","error"+e);
            e.printStackTrace();
        }
    };

userfbdata

public class UserfbData {

    public String name;
    public String email;
    public String facebookID;
    public String gender;
    public  String birthday;
}

您需要进行GraphRequest调用以获取登录用户的个人信息,例如ID,名称,电子邮件等。

GraphRequest request = GraphRequest.newMeRequest(accessToken,
    new GraphRequest.GraphJSONObjectCallback() {
        @Override
        public void onCompleted(JSONObject object, GraphResponse response) {
            try {
                String email = object.getString("email");
            } catch (JSONException e) {
            }
        }
    }
);
Bundle parameters = new Bundle();
parameters.putString("fields","email");
request.setParameters(parameters);
request.executeAsync();

最新更新