Ich versuche, die E-Mail-Adresse des Benutzers zu erhalten, sobald er in meiner Android App mit Facebook (sdk 4.0) eingeloggt ist. Ich habe viele Beiträge gelesen, die dasselbe fragen, aber ich konnte es immer noch nicht schaffen. Ich log einfach den Benutzer mit dem CodeWie bekomme ich die E-Mail-Adresse des angemeldeten Benutzers mit Graph Anfrage in Facebook Android SDK 4.0
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends", "email"));
Dann habe ich die Graph API-Anfrage machen mit
LoginManager.getInstance().registerCallback(fbCallbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
System.out.println(loginResult.getAccessToken().toString());
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
System.out.println(object.toString());
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "email");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
// App code
}
@Override
public void onError(FacebookException exception) {
// App code
}
});
Der Ausgang ist nur
{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile, contact_email, user_friends, email, basic_info]}
{"id":"xxxxxxxxxxxxxxx"}
Auch wenn ich die "Felder" entfernen Teil, ich bekomme ein JSON mit einer Reihe von öffentlichen Informationen des Benutzers, aber nie das E-Mail-Feld. Ich teste das auf meinem eigenen Facebook-Konto und ich habe eine E-Mail-Adresse damit verbunden.
Haben Sie eine Antwort auf Ihre Frage gefunden? Wenn ja, bitte posten Sie es hier als Antwort. –
Eigentlich arbeitete der Code in Ihrer Frage für mich vor allem die Antworten unten, danke Mann –