Facebook SDK para android: getFirstName () y getLastName () devuelven cadenas null

Estoy desarrollando una aplicación nativa de Android con SDK de Facebook 3.5.

Estoy tratando de tener un autocompletetextview donde puedo elegir algunos amigos de facebook, para esto estoy usando un nuevoMyFriendsRequest como a continuación:

private void fbFriendsRequest(final Session session) { Request request = Request.newMyFriendsRequest(session, new Request.GraphUserListCallback() { @Override public void onCompleted(List<GraphUser> listFacebookFriends, Response response) { // If the response is successful if (session == Session.getActiveSession()) { if (listFacebookFriends != null) { mAdapter = new GraphUserAdapter(FriendPicker.this, listFacebookFriends); mAutoComplete.setAdapter(mAdapter); Toast.makeText(FriendPicker.this,"Friends Loaded",Toast.LENGTH_SHORT).show(); } } if (response.getError() != null) { // Handle errors, will do so later. } } }); request.executeAsync(); } 

Luego cada vez que el usuario escoge una fila de la autocompletetextview agrego esta fila a otra lista, y cuando a presione el botón OK tengo:

 public void onOkClick(View v) { if(mGraphUsersList.size()==0) { setResult(RESULT_CANCELED,null); } else { Intent returnIntent = new Intent(); Iterator<GraphUser> itr = mGraphUsersList.iterator(); int n = mGraphUsersList.size(); String[] idfb = new String[n]; String[] names = new String[n]; String[] lastnames = new String[n]; int i = 0; while(itr.hasNext()) { GraphUser User = (GraphUser) itr.next(); idfb[i]=User.getId(); names[i]=User.getFirstName(); // problem lastnames[i]=User.getLastName(); // problem i++; } returnIntent.putExtra("idfb",idfb); returnIntent.putExtra("names",names); returnIntent.putExtra("lastnames",lastnames); setResult(RESULT_OK,returnIntent); } finish(); } 

Cuando uso las funciones getFirstName () y getLastName () tengo cadenas nulas, pero si uso la función getName () se devuelve el nombre + apellido. Es como si en la lista dada por newMyFriendsRequest algo se ha perdido.

¿Alguien sabe una solución para esto?

One Solution collect form web for “Facebook SDK para android: getFirstName () y getLastName () devuelven cadenas null”

Para obtener otros campos que id y name de amigos, debe especificarlos explícitamente en su solicitud.

Para ello, añádalos al Bundle de tu solicitud como:

 Request request = Request.newMyFriendsRequest(session, new Request.GraphUserListCallback() { @Override public void onCompleted(List<GraphUser> listFacebookFriends, Response response) { // your code like you did } } // here add fields explicitly Bundle bundle = request.getParameters(); mBundle.putString("fields", "id,first_name,last_name"); // execute like you did request.executeAsync(); 

Esta es una solución para ti, o otra es usar esta sencilla biblioteca super: android-simple-facebook

  • Clics de Facebook SDK 4.7.0 ClassNotFoundException para AppEventsLogger
  • Facebook LoginButton para Android no toma los valores de login_text y logout_text pasados ​​de XML
  • No se puede ejecutar dex: varios archivos dex definen Lcom / facebook / android / AsyncFacebookRunner $ 1;
  • ¿Es posible cambiar la imagen del botón de inicio de sesión de Facebook en Facebook Android SDK3?
  • ¿Cómo detectar un evento de cierre de sesión con la API de Android de Facebook v4?
  • No se puede ejecutar con SDK de Facebook incluido
  • Android Studio - Error en el botón de inicio de sesión de Facebook
  • Facebook Android SDK v4.0.0 ShareDialog NullPointerException issue
  • Java.lang.RuntimeException: Error al entregar el resultado ResultInfo mientras se registra usando Facebook
  • Recursos $ NotFoundException se lanza integrando Facebook-android-sdk-3.0
  • Configuración de sesión de Android FB API 3.0 con fragmentos
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.