Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo gestionar el objeto de respuesta de la API de Facebook de Android

La API de Facebook actual v3.0.2.b devolverá un objeto com.facebook.Response que contiene la respuesta. ¿Sabes cómo analizar esto? El código siguiente generará una excepción 🙁

//execute the request Request request = new Request ( session, "/fql", params, HttpMethod.GET, new Request.Callback() { @Override public void onCompleted( Response response ) { try { JSONArray json = new JSONArray( response.toString() ); } catch ( Throwable t ) { System.err.println( t ); } } } ); Request.executeBatchAsync( request ); 

El mensaje de error dice:

 org.json.JSONException: Unterminated object at character 25 of {Response: responseCode: 200, graphObject: GraphObject{graphObjectClass=GraphObject, state={"data":[{"pic_square":..... 

¿Alguien sabe cuál es la solución correcta? ¿Debo usar

 GraphObject go = response.getGraphObject(); 

.. ¿cómo puedo obtener GraphUser-Objects con eso?

Lo sentimos, esto parece un problema trivial pero procesar el objeto de respuesta está mal documentado en los documentos de facebook y no pude recibir nada de esto en la web 🙁

¡Muchas gracias por adelantado!

Saludos Christopher

  • Android: Cómo obtener las fechas de nacimiento de los amigos del calendario de Facebook mediante Graph API
  • Cómo abrir la Página de fans de Facebook y comprobar si el usuario le ha gustado
  • Fb app invita con código de referencia
  • Cómo enviar solicitudes de aplicaciones a amigos a través de Facebook Android SDK
  • Inicio de sesión de Facebook: finaliza un error de hash de clave no válido, al intentar iniciar sesión de nuevo
  • Recuperar foto de perfil con Facebook SDK 3.0 para Android
  • Android: ¿Cuál es la clase de diálogo compartido en Facebook SDK 4.x
  • ¿Cómo integrar la función "Me gusta" y "Comentar" con Android Facebook SDK?
  • One Solution collect form web for “Cómo gestionar el objeto de respuesta de la API de Facebook de Android”

    Esta es la solución que funcionó para mí – tuve que investigar la respuesta y jugar un poco con algunos métodos, pero finalmente lo resolvió 🙂

     /************************************************************************ * Parses the user data from the facebook FQL * * "SELECT uid, name, pic_square FROM user WHERE uid IN ( SELECT uid2 FROM friend WHERE uid1 = me() )" * * This is the example query from * {@link http://developers.facebook.com/docs/howtos/androidsdk/3.0/run-fql-queries/} * * @param response The facebook response from the FQL ************************************************************************/ public static final void parseUserFromFQLResponse( Response response ) { try { GraphObject go = response.getGraphObject(); JSONObject jso = go.getInnerJSONObject(); JSONArray arr = jso.getJSONArray( "data" ); for ( int i = 0; i < ( arr.length() ); i++ ) { JSONObject json_obj = arr.getJSONObject( i ); String id = json_obj.getString( "uid" ); String name = json_obj.getString( "name" ); String urlImg = json_obj.getString( "pic_square" ); //... } } catch ( Throwable t ) { t.printStackTrace(); } } 

    Espero que esto ayude a alguien algún día.

    Saludos

    Christopher

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.