我正在使用以下代码在登录后检索有关用户的更多信息,并且我正在使用Graph API,但问题是这个代码有时会返回有效的电子邮件,对于同一个用户,在其他情况下它不会返回另一个用户。不返回电子邮件可以被理解为可能是因为用户没有有效的电子邮件,但是有时用户工作,有时不工作。
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();
}
感谢任何帮助,谢谢
答案 0 :(得分:0)
经过一天的研究和一些代码,发现与上面的代码一起需要设置Facebook LoginButton对象的权限,如下所示,希望它可以帮助某人。上述代码也不是仅在验证电子邮件时才返回电子邮件,但如果帐户包含未经验证的电子邮件,则以上代码不会返回电子邮件。 在这种情况下添加以下代码
loginButton.setReadPermissions("email");