GReaper / MadridLive

Madrid Live repository
0 stars 0 forks source link

Funcionamiento de la sincronización con servidor para el trust #95

Closed GReaper closed 10 years ago

GReaper commented 10 years ago

Para el cálculo del trust es necesario disponer de bastante información de la red social. En esta issue se explicará el funcionamiento de la parte de obtención de dicha información y guardado en servidor. El cálculo del trust se abordará en otra diferente.

GReaper commented 10 years ago

Actualizo - IMPORTANTE He finalizado el Servlet de actualización de datos y ya puedo decir cómo se envían los datos. Lo que voy a explicar corresponde al punto 2 del comienzo de la issue, donde se pone que falta por determinar cómo se enviará el parámetro tipo y datos.

I.- Parámetro tipo Este parámetro es muy simple. Sus valores serán Strings e indicarán la operación de actualización actual. Los valores aceptados son:

Ejemplo: conexion.agregarParametro("tipo", "etiquetas");

II.- Parámetro datos Este parámetro será un String. Concretamente, será el JSON que se haya generado al procesar los datos de Facebook pasado a String (no será el mismo JSON que el recibido de Facebook). Por supuesto, cada tipo de conexión sincronizará unos datos concretos y tendrá su propio formato interno de JSON a enviar. Ejemplo para fijar el campo datos: conexion.agregarParametro("datos", stringDatos);

Ahora bien, ¿Cómo se forma ese campo de datos? Todos los JSON generados tendrán un campo único y común denominado listadatos, que será una lista de JSOn que contendrá toda la información a sincronizar - una lista de elementos -. Esto es, por ejemplo:

{ listadatos : [ ] }

Lo que cambiará en cada conexión es el contenido de esta lista. Para poner un formato común se hará lo siguiente:

Por último, por sencillez, los JSON se generarán usando objetos JSONObject, JSONArray y demás elementos de la librería org.json al igual que se hace al tomar las respuestas de servidor.

Para poner todo esto en conjunto, este sería un ejemplo de JSON inventado para sincronizar mensajes - por ejemplo -:

{ "listadatos" : 
    [ 
        { "id" : "abc" , "createdtime" : 12234 , "fromid" : "daf" , "toid" : "okams"},
        { "id" : "rtw" , "createdtime" : 12764 , "fromid" : "okf" , "toid" : "mfdoas"},
        { "id" : "sdfg6" , "createdtime" : 12454 , "fromid" : "adsf" , "toid" : "rtye"}
    ]
}

Como se puede ver, hay una lista general llamada "listadatos" que tiene una serie de JSON que son los recuperados de Facebook (corresponderían a cada conjunto de datos recuperado de FQL). Cada uno de estos grupos tiene la información de ese tipo de datos.

Otro ejemplo, esta vez para sincronizar amigos:

{ "listadatos" : 
    [ 
        { "userid" : "abc" , "friendid" : "def"},
        { "userid" : "abc" , "friendid" : "ghi"},
        { "userid" : "abc" , "friendid" : "jkl"}
    ]
}

Estos JSON son los que se generarán a partir de la respuesta de Facebook en la clase ParserRespuestasFacebook.

GReaper commented 10 years ago

Actualizo Podéis usar el código completado en #104 como modelo. Tened cuidado y no copiéis todo porque habrá cosas que cambien como los enumerados, fechas, etc.

GReaper commented 10 years ago

Todos los puntos finalizados, cierro issue