Sto cercando di ottenere l'indirizzo email dell'utente una volta che ha effettuato l'accesso alla mia app Android con Facebook (sdk 4.0). Ho letto molti post chiedendo la stessa cosa ma non riuscivo ancora a farlo funzionare. I log semplicemente l'utente con il codiceCome ottenere l'indirizzo email dell'utente registrato con Richiesta grafico in Facebook Android sdk 4.0
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends", "email"));
Poi faccio la richiesta API Grafico con
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
}
});
L'uscita è solo
{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile, contact_email, user_friends, email, basic_info]}
{"id":"xxxxxxxxxxxxxxx"}
Anche se rimuovere i "campi" parte, ottengo un JSON con un gruppo di informazioni pubbliche dell'utente, ma mai il campo email. Sto testando questo sul mio account Facebook, e ho un indirizzo email associato ad esso.
hai trovato una risposta per la tua domanda? Se sì, per favore postalo qui come risposta. –
In realtà il codice nella tua domanda ha funzionato per me sopra tutte le risposte qui sotto, grazie uomo –