Liebe Entwickler Ich versuche, Daten von Facebook zu speichern Ich bekomme andere alle Daten, aber kann nicht die E-Mail und Geschlecht.Facebook SDK E-Mail und Geschlecht ist Null in Android
Dies ist mein Code
loginButton.setReadPermissions("public_profile");
loginButton.setReadPermissions("email");
loginButton.setReadPermissions("user_friends");
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = loginResult.getAccessToken();
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object,GraphResponse response) {
if (response != null) {
try {
email = object.getString("email");
} catch (JSONException e) {
e.printStackTrace();
}
try {
gender = object.getString("gender");
} catch (JSONException e) {
e.printStackTrace();
}
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "email,gender");
request.setParameters(parameters);
request.executeAsync();
Profile profile = Profile.getCurrentProfile();
userid = profile.getId();
userfirstname = profile.getFirstName();
middlename = profile.getMiddleName();
userlastname = profile.getLastName();
userimage = profile.getProfilePictureUri(30, 40);
linkuri = profile.getLinkUri();
name = profile.getName();
new AsyncTask<String, String, String>() {
@Override
protected String doInBackground(String... params) {
WebService ws = new WebService(URL);
Map<String, String> data = new HashMap<String, String>();
data.put("user_fb_id", userid);
data.put("first_name", userfirstname);
data.put("middle_name", userfirstname);
data.put("gender", gender);
data.put("email", email);
data.put("last_name", userfirstname);
data.put("user_fb_profile_name", name);
data.put("fb_profile_pic", userimage.toString());
try {
String response = ws.makeHTTPRequest(data, "POST");
JSONObject jsonObject = new JSONObject(response);
Log.e("Response", jsonObject.toString());
} catch (Exception e) {
Log.d("", "Exception : " + e.getMessage());
}
return null;
}
}.execute();
}
@Override
public void onCancel() {
//info = ("Login attempt canceled.");
}
@Override
public void onError(FacebookException e) {
// info = ("Login attempt failed.");
}
});
jetzt lasse ich Sie wissen, was der Fehler in meinem obigen Code ist.
Wenn ich die GraphRequest ausführen wird es erfolgreich ausgeführt, aber nicht die E-Mail und Geschlecht. Die E-Mail und das Geschlecht ist gleich Null Nach der GrapRequest Methode ich bin AsyncTask laufen und senden Sie diese Daten in meinem Web-Services post Klasse geben Sie mir Fehler von null E-Mail und Geschlecht, aber wenn ich die E-Mail und Geschlecht nach der Ausführung von AsyncTask sie haben diese Daten bitte helfen Sie mir, wie Sie dieses Problem lösen.
was ich will Ich möchte die Benutzergrunddaten speichern, wenn es eine andere Möglichkeit gibt, lassen Sie mich auch wissen, dass ich es versuchen werde.
In einigen Fällen, obwohl der Benutzer eine E-Mail angegeben hat, wird die Anfrage nicht beantwortet, wenn die E-Mail nicht gültig ist. – RAAAAM
Sie Recht über die E-Mail, aber ich meine Fall die E-Mail ist da und es wird von der Anfrage aber nach der AsyncTask Ausführung. Ich möchte es vor der Ausführung von AsyncTask erhalten. –