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
  • Facebook, setReadPermissions y setPublishPermissions
  • Crear nuevo mensaje utilizando la API de gráfico de Facebook
  • Publicar en Facebook Fan página a través de la aplicación
  • API de gráficos de Android Facebook
  • Obtén la imagen de usuario de Facebook Graph-API
  • Puntos finales de Google Cloud y autenticación del usuario
  • Facebook Android SDK 4.5.0 obtener la dirección de correo electrónico
  • ¿Cuál es la nueva implementación del diálogo de solicitudes de aplicaciones en Android Facebook SDK 4.0.1
  • Facebook SDK 4.x Android Publicar como página de Facebook
  • Cómo obtener la foto del perfil de Facebook en Facebook SDK Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.