Ich erstelle derzeit eine Testanwendung mit dem neuesten facebook SDK zu testen, um unsere bestehende Anwendung Problem zu aktualisieren ist, dass ich die E-Mail-Adresse, die ich weiß, hängt davon ab, ob der Benutzer hat einen auf sein Konto gestellt. Jetzt bietet das Konto, das ich zum Testen verwende, eine Sicherheit, aber aus unbekannten Gründen bietet das Facebook-SDK nur die Benutzer-ID und den vollständigen Namen des Kontos und sonst nichts. Ich bin verwirrt, da das SDK3 und darüber mehr Informationen als das aktualisierte SDK4 bietet und ich weiß nicht, wie ich die E-Mail bekommen soll, da alle Antworten, die ich bisher gesehen habe, die E-Mail nicht an meinem Ende bereitstellen. Hier ist mein Code so weit:Facebook Android SDK 4.5.0 erhalten E-Mail-Adresse
Login-Button
@OnClick(R.id.btn_login)
public void loginFacebook(){
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "email"));
}
Loginmanager Rückruf:
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
requestUserProfile(loginResult);
}
@Override
public void onCancel() {
Toast.makeText(getBaseContext(),"Login Cancelled", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(FacebookException e) {
Toast.makeText(getBaseContext(),"Problem connecting to Facebook", Toast.LENGTH_SHORT).show();
}
});
und die Anforderung für Benutzerprofil:
public void requestUserProfile(LoginResult loginResult){
GraphRequest.newMeRequest(
loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject me, GraphResponse response) {
if (response.getError() != null) {
// handle error
} else {
try {
String email = response.getJSONObject().get("email").toString();
Log.e("Result", email);
} catch (JSONException e) {
e.printStackTrace();
}
String id = me.optString("id");
// send email and id to your web server
Log.e("Result1", response.getRawResponse());
Log.e("Result", me.toString());
}
}
}).executeAsync();
}
Die JSON Antwort gibt nur die ID und vollständiger Name meines Kontos, aber nicht die E-Mail. Hab ich etwas verpasst?
ich vor einiger Zeit für mich denselben Code und seine Arbeit verwenden aber jetzt sein nicht funktioniert können Sie bitte vollständigen Code schreiben. Rückruf wird nicht –