web-dev-qa-db-fra.com

Comment obtenir l'ID utilisateur FB à l'aide du bouton de connexion Facebook dans l'application Android

Je développe une application dans laquelle j'utilise le bouton de connexion Facebook de SDK. Je peux obtenir access_token de l'utilisateur mais je veux aussi userID. J'ai presque tout essayé mais je n'ai pas réussi. J'ai utilisé le tutoriel de Facebook pour y parvenir. Voici le lien: Facebook Login Button

Aidez-moi à obtenir userID à partir du même bouton de connexion.

Toute aide sera appréciée.

11
Anupam

Une fois la connexion établie, vous devez appeler le code suivant. Vous pouvez obtenir les détails de l'utilisateur connecté avec l'identifiant en réponse.

Session session = Session.getActiveSession();
Request request = Request.newGraphPathRequest(session, "me", null);
com.facebook.Response response = Request.executeAndWait(request)
4
Santhosh

Utilisez la méthode getId de la classe de profil FB (Facebook SDK 4.0).

  Profile profile = Profile.getCurrentProfile();
  System.out.println(profile.getFirstName());
  System.out.println(profile.getId());
11
Deepika
loginResult.getAccessToken().getUserId()
7
Jonathan Caicedo

Vous devriez être utilisé new facebook sdk 3.0 et 

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
        if (Session.getActiveSession().isOpened()) {
            // Request user data and show the results
            Request.executeMeRequestAsync(Session.getActiveSession(), new Request.GraphUserCallback() {

                @Override
                public void onCompleted(GraphUser user, Response response) {
                    // TODO Auto-generated method stub
                    if (user != null) {
                        // Display the parsed user info
                        Log.v(TAG, "Response : " + response);
                        Log.v(TAG, "UserID : " + user.getId());
                        Log.v(TAG, "User FirstName : " + user.getFirstName());

                    }
                }

            });
        }
    }
4
Ketan Mehta

Selon la réponse de @Ketan Mehta ( https://stackoverflow.com/a/17397931/624109 ) qui utilise une API obsolète, vous devez utiliser le code suivant:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);

    Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);

    if (Session.getActiveSession().isOpened())
    {
        // Request user data and show the results
        Request.newMeRequest(Session.getActiveSession(), new GraphUserCallback()
        {
            @Override
            public void onCompleted(GraphUser user, Response response)
            {
                if (null != user)
                {
                    // Display the parsed user info
                    Log.v(TAG, "Response : " + response);
                    Log.v(TAG, "UserID : " + user.getId());
                    Log.v(TAG, "User FirstName : " + user.getFirstName());

                }
            }
        }).executeAsync();
    }
}
3
Muzikant

Comme toutes ces réponses concernent un SDK plus ancien, voici le code du SDK 4.0: 

loginButton.registerCallback(callbackManager, new    FacebookCallback<LoginResult>() {
        @Override
        public void onSuccess(LoginResult loginResult) {
            // App code
            Profile profile = Profile.getCurrentProfile();

            Log.d("facebook",profile.getId());
        }

        @Override
        public void onCancel() {
            // App code
            Log.d("facebook","failed");
        }

        @Override
        public void onError(FacebookException exception) {
            // App code
            Log.d("facebook","failed");
        }
    });

je cherchais la même chose qui ressemble à l'objet Session n'est plus accessible, voici donc la nouvelle façon d'obtenir le profil et l'ID utilisateur.

3
vishal dharankar

L'API de graphique de Facebook vous permet de faire des appels renvoyant du JSON, que vous pouvez analyser dans Android avec un objet JSON tel que le code ci-dessous.

JSONObject me = new JSONObject(fb.request("me"));
String id = me.getString("id");
2

Vous pouvez obtenir l'ID utilisateur avec ce code: 

document.getElementById('status').innerHTML =
   'Welcome ' + response.name + '!' + "<br />"+
   'Your user ID is : ' + response.id;
1
HQtunes.com