L'accès de l'utilisateur e-mail à l'aide de nouvelles Facebook SDK Android
Salut, je suis en train de jouer avec de nouvelles Facebook SDK Android. Une chose que je n'arrivais pas à comprendre c'est comment puis-je demander une adresse e-mail. J'ai essayé de suivre mais il a retourné des valeurs pour tous les champs à l'exception de l'adresse électronique. Je suppose que je dois demander la permission séparément pour l'adresse de courriel, mais ne sais pas comment je peux le faire si j'utilise LoginFragment.
Request request = Request.newMeRequest(session, new GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
profilePictureView.setUserId(user.getId());
userNameView.setText(user.getName());
}
});
String NAME = "name";
String ID = "id";
String PICTURE = "picture";
String EMAIL = "email";
String FIELDS = "fields";
String REQUEST_FIELDS = TextUtils.join(",", new String[] {
ID, NAME, PICTURE, EMAIL
});
Bundle parameters = new Bundle();
parameters.putString(FIELDS, REQUEST_FIELDS);
request.setParameters(parameters);
Request.executeBatchAsync(request);
Toute aide est appréciée.
Grâce
- vous devez spécifier la version du sdk, au lieu de mentionner "nouveau Facebook android sdk", je suppose
Vous devez vous connecter pour publier un commentaire.
Procédez de la manière suivante:
Après le réglage de la les autorisations au-dessus de l'accès à l'e-mail via:
de l'utilisateur.asMap().get("email"));
Voir l'exemple ci-dessous
authButton.setReadPermissions(Arrays.asList("email"));
et a ensuite essayé d'accéder à l'e-mail comme ceciuser.asMap().get("email")
mais il renvoie toujoursnull
.Lorsque vous ouvrez la Session, essayez d'inclure "e-mail" dans la liste des autorisations.
Si vous utilisez LoginButton, faire quelque chose comme:
Si vous êtes ouverture de la Séance, vous-même, faire quelque chose comme:
Vous pouvez expérimenter avec des demandes/autorisations à l'aide de: https://developers.facebook.com/tools/explorer/
Une fois que vous êtes connecté avec succès à ces autorisations, puis essayez à nouveau la demande, y compris le champ e-mail.
Si vous utilisez
com.facebook.widget.LoginButton
vous devez définir les autorisations pour ce fragment, après que facebook retours e-mail. Voici code du travail:MODIFIER
Facebook mise à jour du sdk, ce qui a facilité le travail avec elle. À partir de 4.x version (changelog), vous pouvez initialiser sdk dans différents endroits où vous en avez besoin et de les utiliser de manière très simple. Voici un exemple:
Session.StatusCallback
. À l'intérieur de la méthode de rappel: ` @Override public void appel(Session, SessionState sessionState, Exception e) { if (sessionState.isOpened() && session.isOpened()) { Demande moi = Request.newMeRequest(session, une nouvelle Demande.GraphUserCallback() { @Override public void onCompleted(GraphUser graphUser, réponse de Réponse) { String email = graphUser.asMap().get("email").toString(); } }); moi.executeAsync(); } }`J'ai trouvé une solution: et il fonctionne