Próbuję uzyskać adres e-mail użytkownika, gdy jest zalogowany do mojej aplikacji na Androida z Facebookiem (sdk 4.0). Czytałem wiele postów pytających o to samo, ale nadal nie mogłem tego zrobić. Ja po prostu zalogować się użytkownikowi z kodemJak uzyskać adres e-mail zalogowanego użytkownika za pomocą żądania wykresu na Facebooku Android sdk 4.0
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends", "email"));
Potem dokonać API wniosek wykres z
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
}
});
wyjście jest tylko
{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile, contact_email, user_friends, email, basic_info]}
{"id":"xxxxxxxxxxxxxxx"}
Nawet jeśli usunąć „pola” część, dostaję JSON z grupą publicznych informacji o użytkowniku, ale nigdy w polu adresu e-mail. Testuję to na moim własnym koncie na Facebooku i mam przypisany do niego adres e-mail.
czy znalazłeś odpowiedź na swoje pytanie? Jeśli tak, proszę zamieścić tutaj jako odpowiedź. –
Właściwie kod w ur pytanie pracował dla mnie przede wszystkich odpowiedzi poniżej, dzięki człowieku –