Définir l'autorisation d'obtenir l'ID d'e-mail de l'utilisateur à partir de Facebook
Je suis en utilisant Facebook 3.0 SDK
pour android. - Je mettre en place Facebook
journal. Je suis l'accès de l'utilisateur des informations de base comme le nom, l'id d'utilisateur. Mais je veux avoir accès à l'adresse email de l'utilisateur. Je suis passé par de nombreux blogs et forum, mais ne peut pas comprendre comment le faire.
Je suis avec mon propre android bouton pour connecter pas com.facebook.widget.LoginButton
. Si j'utilise Facebook
bouton "se connecter" c'était facile il suffit d'utiliser ces lignes:
authButton.setReadPermissions(Arrays.asList("basic_info","email"));
Mais, j'ai ma propre condition, vous devez aller avec android par défaut des boutons. Voici ce que j'ai fait jusqu'à présent:
Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(
this, Arrays.asList("email"));
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLogin = (Button) findViewById(R.id.logIn);
mLogin.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//start Facebook Login
Session.openActiveSession(this, true, new Session.StatusCallback() {
//callback when session changes state
@Override
public void call(final Session session, SessionState state,
Exception exception) {
if (session.isOpened()) {
session.requestNewReadPermissions(newPermissionsRequest);
//make request to the /me API
Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {
//callback after Graph API response with user
//object
@Override
public void onCompleted(GraphUser user,
Response response) {
if (user != null) {
System.out
.println("Facebook Response: "
+ response.toString());
access_token = session.getAccessToken();
firstName = user.getFirstName();
fb_user_id = user.getId();
System.out
.println("Facebook Access token: "
+ access_token);
System.out.println("First Name:"
+ firstName);
System.out.println("FB USER ID: "
+ fb_user_id);
}
}
});
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode,
resultCode, data);
}
Je suis en mesure d'obtenir toutes ces choses que je suis d'impression dans le journal, mais il a été impossible de récupérer les e-mail de l'utilisateur le profil.
Que puis-je faire pour cela?
De l'aide sera appréciée.
source d'informationauteur Anupam | 2013-05-02
Vous devez vous connecter pour publier un commentaire.
Résolu: Voici ce que j'ai fait...
Maintenant, je suis en mesure de recevoir un email d'autorisation avec le reste de la publier autorisation.
Marquage ce accepté de répondre, de sorte qu'il peut aider les autres.
TL; DR: utiliser quelque chose comme cela pour obtenir l'e-mail:
J'ai un commentaire à propos de votre code. Depuis "e-mail" est une autorisation de lecture, vous n'avez pas besoin de créer une demande d'autorisation pour l'obtenir. Vous pouvez faire quelque chose comme ceci (code non testé, alors il pourrait y avoir de légères erreurs):
et vous pouvez se débarrasser de la nouvelle demande d'autorisation dans votre fonction de rappel.