Cómo obtener el ID de usuario de FB mediante el botón de inicio de sesión de Facebook en la aplicación de Android
Estoy desarrollando una aplicación en la que estoy usando el botón de inicio de sesión de Facebook
de SDK. Soy capaz de obtener access_token
del usuario, pero también quiero userID
. He intentado casi todo, pero no ha tenido éxito. He utilizado tutorial de Facebook para lograr eso. Aquí está el enlace: Botón de inicio de sesión de Facebook
Por favor, ayúdame a obtener userID
de usuario desde el mismo botón de inicio de sesión.
- ¿Cómo puedo compartir contenido en la pared de Facebook con su SDK de Android?
- Cerrar sesión Facebook Android SDK
- Android y Facebook SDK: descodificación de imágenes de / me / picture graph call
- Utilizando facebook sdk en android studio
- Session.StatusCallback no se puede resolver con un tipo - Facebook API
Cualquier tipo de ayuda será apreciada.
- Errores de Facebook relacionados con auth.extendSSOAccessToken
- La clave de la aplicación de Android no coincide con ninguna hash de clave almacenada
- Autenticación de Facebook sin botón de inicio de sesión
- Cómo obtener fotos de amigos usando facebook-android-SDK
- Facebook Android SDK, UiLifecycleHelper Error de StackOverflow
- Nueva API de Facebook 3.0. Y compatibilidad con ActionBarSherlock
- Autenticar usuario móvil contra SDK de Facebook, realizar solicitudes desde la aplicación de servidor
- Uso del diálogo compartido en Android Facebook SDK. ¿Cómo saber si el usuario comparte o cancela la actividad compartida?
Después de iniciar sesión con éxito, debe llamar al siguiente código. Puede obtener los detalles de usuario con la identificación en respuesta.
Session session = Session.getActiveSession(); Request request = Request.newGraphPathRequest(session, "me", null); com.facebook.Response response = Request.executeAndWait(request)
Utilice el método getId de la clase FB Profile (Facebook SDK 4.0).
Profile profile = Profile.getCurrentProfile(); System.out.println(profile.getFirstName()); System.out.println(profile.getId());
loginResult.getAccessToken().getUserId()
you should be used new facebook sdk 3.0 and @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()); } } }); } }
Basado en la respuesta de @ Ketan Mehta ( https://stackoverflow.com/a/17397931/624109 ) que utiliza una API obsoleta, debe utilizar el código siguiente:
@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(); } }
Como todas estas respuestas son para SDK antiguo, para SDK 4.0 aquí está el código
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"); } });
Estaba buscando la misma cosa parece que el objeto de sesión no es más accesible por lo que es la nueva forma de obtener el perfil de usuario y el ID de usuario.
La API de gráficos de Facebook le permite realizar llamadas que devuelven JSON, que puede analizar en Android con un objeto JSONObject como éste debajo del código.
JSONObject me = new JSONObject(fb.request("me")); String id = me.getString("id");
Puede obtener el ID de usuario con este código:
document.getElementById('status').innerHTML = 'Welcome ' + response.name + '!' + "<br />"+ 'Your user ID is : ' + response.id;
- ¿Sobrepasando el fondo emergente ActionBarCompat overflow?
- Android.intent.action.PACKAGE_ADDED BroadcastReceiver no recibe el tema añadido intención en JB 4.1