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:
- LikeView Callback
- ¿Deben las aplicaciones de Android con un componente de servidor acceder directamente a Facebook?
- No se puede publicar una imagen de drawable a facebook
- El contenido de Dialog de Android Facebook Share no se muestra en la página principal
- Android facebook sdk publicar la alimentación a la línea de tiempo del usuario
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?
- La devolución de llamada de Facebook SDK 3.0 se dispara dos veces
- Android Facebook SDK Compartir diálogo: nunca volver Completion Gesture
- ¿Cómo puedo compartir contenido en la pared de Facebook con su SDK de Android?
- Facebook Publicar en tu nombre no funciona en android facebook sdk 3.0.2
- Generación de hash de claves de liberación en Linux OS (Ubuntu): Android Facebook SDK
- Facebook login NullPointerException
- ToByteArray () no se resolverá para el inicio de sesión de facebook
- Clics de Facebook SDK 4.7.0 ClassNotFoundException para AppEventsLogger
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
- Aplicación de Android que calcula su propia suma de comprobación MD5
- ¿Puede Eclipse generar automáticamente diferentes imágenes DPI para proyectos de Android?