android 上的 Facebook Graph API 有时 return 不发送电子邮件

Facebook Graph API on android doesn't return Email sometimes

我正在使用以下代码在登录后检索有关用户的更多信息,我正在使用 Graph API,但问题是这段代码有时 returns 有时不是有效的电子邮件,因为同一个用户,在其他情况下它根本不会为另一个用户返回。不返回电子邮件可以理解为可能是由于用户没有有效的电子邮件,但同一用户有时有效有时无效。

 fbLoginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(final LoginResult loginResult) {

            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) {
                            String email = "";
                            if (json.isNull("email") == false) {
                                email = json.getString("email");
                            }
                            Log.d("email", email);

                        }

                    } catch (JSONException e) {
                        e.printStackTrace();

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

        }

感谢任何帮助,谢谢

经过一天的研究和一些代码,发现除了上面的代码之外,还需要如下设置 Facebook LoginButton 对象的权限,希望它对某人有所帮助。也不是上面的代码 return 仅当电子邮件经过验证时才发送电子邮件,但是如果帐户的电子邮件未经过验证,上面的代码将不会 return 发送电子邮件。 在这种情况下添加以下代码

loginButton.setReadPermissions("email");