Error al recuperar el correo electrónico y la ubicación de Facebook Request in Android

Estoy usando facebook sdk 3.5 en Android nativo. Así es como obtengo el id / nombre de mis amigos de Facebook:

private void onSessionStateChange(final Session session, SessionState state, Exception exception) { System.out.println("onSessionStateChanged"); if (session != null && session.isOpened()) { if (state.equals(SessionState.OPENED_TOKEN_UPDATED)) { tokenUpdated(); } else { getUserRequest(session); getFriendsRequest(session); } } else { profilePictureView.setProfileId(null); userNameView.setText(""); } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Session.getActiveSession().onActivityResult(getActivity(), requestCode, resultCode, data); // uiHelper.onActivityResult(requestCode, resultCode, data, // nativeDialogCallback); } private void getFriendsRequest(Session session) { session.requestNewReadPermissions(new NewPermissionsRequest( getActivity(), PERMISSIONS)); final ProgressDialog dialog = new ProgressDialog(getActivity()); // get friends details Request request = Request.newMyFriendsRequest(session, new Request.GraphUserListCallback() { @Override public void onCompleted(List<GraphUser> users, Response response) { // if no errors if (response.getError() == null) { if (users != null) { for (GraphUser user : users) { FacebookFriend fb = new FacebookFriend(user .getId(), user.getName(), "", "", "", 0); friends.add(fb); } .... } } 

La respuesta es ahora:

 {Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[{"id":"213","name":"Test name"}]}}, error: null, isFromCache:false} 

Todos los grandes aquí, pero los detalles como el correo electrónico (si se comparte), ubicación, nombre de usuario no están en:

 GraphObject{graphObjectClass=GraphUser, state={"id":"60711232217","name":"Test"}} 

¿Dónde debo establecer permisos? Esta es mi petición:

 {Request: session: {Session state:OPENED, token:{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[email, user_location, user_friends, friends_location, basic_info]}, appId:111111}, graphPath: me/friends, graphObject: null, restMethod: null, httpMethod: GET, parameters: Bundle[{access_token=dasdasdasdasdsada, format=json, sdk=android, migration_bundle=fbsdk:20130708}]} 

¿Dónde debo agregar esos permisos para tener más detalles?

Gracias.

3 Solutions collect form web for “Error al recuperar el correo electrónico y la ubicación de Facebook Request in Android”

Ir a este enlace Graphapilink

Haga clic en el icono Graph API Explorer-> A continuación, seleccione el nombre de la aplicación "YourApplication" -> A continuación, haga clic en GetAccesTocken .it mostrar la ventana Seleccionar pop-up Permiso .-> A continuación, seleccione la ficha Permiso extendido.

introduzca la descripción de la imagen aquí

Por último, se seleccionará el permiso necesario que desea como la imagen de arriba

  • Facebook no permite que las aplicaciones accedan a correos electrónicos de amigos

Para el descanso Vea las imágenes abajo. Usted tiene que fijar los permisos derechos y ver cómo trabaja en mi perfil

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

Y el resultado que obtendrás

introduzca la descripción de la imagen aquí

Su consulta:

 "me/friends?fields=id,name,location,email" 

Eso significa que usted está intentando buscar el nombre, la localización, el email. Puedes obtener el nombre , pero para la ubicación necesitas el permiso friends_location ; por correo electrónico – facebook no te permiten buscar el correo electrónico de los amigos.

Espero no tener que crear una solicitud para cada uno de mis amigos para obtener datos

Por supuesto no. Su consulta es correcta, obtendrá una matriz en el resultado como-

 { "data": [ { "name": Friend1_Name, "location": { "id": Friend1_LocationID, "name": Friend1_Location }, "id": Friend1_ID }, { "name": Friend2_Name, "location": { "id": Friend2_LocationID, "name": Friend2_Location }, "id": Friend2_ID }, .... .... ] } 

Demo en vivo


Si usted está consiguiendo-

"Un token de acceso activo debe utilizarse para consultar información sobre el usuario actual.", "Type": "OAuthException"

Eso significa que el usuario (actual) no ha iniciado sesión en su aplicación, o la sesión ha caducado. Por lo tanto, login / auth el usuario a continuación, hacer la llamada API.

  • Cómo obtener información de perfil de usuario de Facebook API Android
  • No se puede obtener "cuenta" en los campos "me gusta" y "comentarios" usando el acceso_token de mi propia aplicación registrada
  • Error de Facebook: permitir clave: configurar los hashes de su clave de aplicación en dev.facebook android
  • Publicar en Facebook Fan página a través de la aplicación
  • Android Cómo elegir una publicación con facebook 3.0 sdk
  • Problema problemático para la integración de FaceBook
  • Cómo ejecutar graph-api Facebook Android SDK
  • ¿Cómo verifica facebook la autenticidad de la aplicación con hash clave?
  • Android que abre la aplicación de Facebook en una publicación específica
  • Sesión de Facebook destruida después de cerrar la aplicación
  • Android Facebook SDK - ¿Cómo iniciar sesión como otro usuario?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.