J'utilise le code suivant. Je veux la date de naissance, l'adresse e-mail et le sexe de l'utilisateur. Veuillez aider. Comment récupérer ces données?
C'est mon onViewCreated()
intérieur du Fragment.
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
// Setup TextView.
mTextDetails = (TextView) view.findViewById(R.id.text_details);
// Set up Login Button.
LoginButton mButtonLogin = (LoginButton) view.findViewById(R.id.login_button);
// setFragment only if you are using it inside a Fragment.
mButtonLogin.setFragment(this);
mButtonLogin.setReadPermissions("user_friends");
mButtonLogin.setReadPermissions("public_profile");
mButtonLogin.setReadPermissions("email");
mButtonLogin.setReadPermissions("user_birthday");
// Register a callback method when Login Button is Clicked.
mButtonLogin.registerCallback(mCallbackManager, mFacebookCallback);
}
Ceci est ma méthode de rappel.
private FacebookCallback<LoginResult> mFacebookCallback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d("Shreks Fragment", "onSuccess");
Profile profile = Profile.getCurrentProfile();
Log.d("Shreks Fragment onSuccess", "" +profile);
// Get User Name
mTextDetails.setText(profile.getName() + "");
}
@Override
public void onCancel() {
Log.d("Shreks Fragmnt", "onCancel");
}
@Override
public void onError(FacebookException e) {
Log.d("Shreks Fragment", "onError " + e);
}
};
android
facebook-android-sdk
facebook-sdk-4.0
Sriyank Siddhartha
la source
la source
Réponses:
Ce n'est pas la bonne façon de définir les autorisations car vous les écrasez à chaque appel de méthode.
Remplacez ceci:
Avec ce qui suit, car la méthode
setReadPermissions()
accepte un ArrayList:Voici également comment interroger des données supplémentaires GraphRequest:
ÉDITER:
Un problème possible est que Facebook suppose que votre e-mail n'est pas valide. Pour le tester, utilisez l' Explorateur d'API Graph et essayez de l'obtenir. Si même là, vous ne pouvez pas recevoir votre e-mail, modifiez-le dans les paramètres de votre profil et réessayez. Cette approche a résolu ce problème pour certains développeurs commentant ma réponse.
la source
loginButton.setReadPermissions(Arrays.asList("public_profile", "email"));
?Utilisez cet extrait pour obtenir toutes les informations de profil
la source
Vous n'obtiendrez pas le profil que
onSuccess()
vous devez implémenterProfileTracker
avec l'enregistrement du rappelN'oubliez pas non plus de gérer le démarrage et l'arrêt du suivi de profil
Vous aurez maintenant un profil pour obtenir AccessToken (résolu le problème du profil nul). Il vous suffit d'utiliser " https://developers.facebook.com/docs/android/graph#userdata " pour obtenir des données.
la source
Après connexion
la source
Vous pouvez utiliser la classe GraphRequest pour émettre des appels à l'API Facebook Graph afin d'obtenir des informations utilisateur. Voir https://developers.facebook.com/docs/android/graph pour plus d'informations.
la source
Cela fonctionne pour moi, j'espère aider quelqu'un (en utilisant mon propre bouton et non le bouton de connexion FB)
la source
Voici le code pour trouver l'ID de messagerie, le nom et l'URL du profil, etc.
la source
Voici une solution de travail (2019): mettez ce code dans votre logique de connexion;
la source
Ajoutez cette ligne sur le bouton Cliquez sur
loginButton.setReadPermissions (Arrays.asList ("public_profile", "email", "user_birthday", "user_friends"));
la source
Utilisez la méthode statique FB getCurrentProfile () de la classe Profile pour récupérer ces informations.
la source