Ayuda

API de Eskup

Eskup es el sistema de mensajería de ELPAIS.com con el que nos comunicaremos usando un API. Por ahora, podemos distinguir tres puntos de acceso a ese API:

  • Ineskup: usado para la inyección de mensajes en Eskup.
  • Outeskup: justo lo contrario de Ineskup, se usa para recuperar mensajes e información asociada a ellos.
  • Profileeskup: gestiona las preferencias de los objetos (usuarios o eventos) en Eskup (usuarios que le siguen, perfil en sí, a quienes sigue, etc.).

Antes de empezar con el API en sí, es importante entender los conceptos que manejaremos porque, independientemente de cómo los llamemos de cara al usuario, son los que entenderán los parámetros de llamada al API.

Tipos de objetos:

  • Usuarios: todos nosotros :). Tenemos 4 tablones disponibles (ver más abajo). Debemos autenticarnos ante el API mediante la clave pública disponible en tu página "Opciones" de Eskup.
  • Eventos o temas: una forma simple de verlos podría ser resumida como "usuarios que sólo disponen de un t1 y en el que pueden escribir otros usuarios". Realmente es mucho más complejo porque, por ejemplo, existen funcionalidades de administración, permisos, suscripciones, etc.

TABLONES

Además, como acabamos de ver, cada objeto puede disponer de hasta 4 tablones:

  • t1: para un usuario es el tablón donde él/ella escribe todos sus mensajes públicos, pueden ir a más sitios pero todos entran aquí también. Para un evento, es donde entran todos los mensajes que envían los usuarios que escriben en él. Es público y todo el mundo lo puede ver. En Eskup equivale a la pestaña "Mis mensajes".
  • t2: es el tablón donde entran los mensajes de aquellos usuarios y temas a los que seguimos. Solo tiene sentido para los usuarios; por ahora los temas no pueden seguir a ningún otro objeto. Es sólo visible por el propio usuario por lo que las peticiones para recuperarlo deben estar autenticadas. En Eskup equivale a la pestaña "LO QUE SIGO".
  • t3: es el tablón de mensajes privados y vuelve a tener sentido solo para los objetos usuario. Es solo visible por el propio usuario por lo que las peticiones para recuperarlo deben estar autenticadas. En Eskup equivale a la pestaña "Privado".
  • t4: también está relacionado con los usuarios y acumulará los mensajes que tienen relación con él/ella: ya sea porque le mencionan o porque son respuesta a un mensaje suyo. En Eskup equivale a la pestaña "Menciones".

Conceptos que conviene aclarar:

  • Un usuario puede seguir otros objetos y estos aparecerán en su tablón t2 pero, en relación con los objetos de tipo tema, debe comprenderse que es distinto a poder escribir en ellos: podemos querer leer qué se escribe sobre el tema eskup pero no tener intención de participar activamente en él.
  • Un usuario puede escribir en temas pero no seguirlos: siguiendo el ejemplo anterior, podremos escribir en el tema eskup pero, si no lo seguimos, no nos saldrán los mensajes en nuestro tablón t2.
  • Los tablones t1 siempre son públicos y no podemos evitar que un usuario nos pueda seguir. Podemos evitar, mediante la lista de denegaciones, que pueda inyectar mensajes en el tablón t3 de otro usuario, pero nada respecto a seguir otros objetos públicos.
  • No tiene sentido enviar mensajes a sitios públicos y privados (por ejemplo al, antes mencionado, tablón eskup y a un t3 de un usuario) pues que el mensaje sea público invalida la supuesta privacidad. Ante este caso, Ineskup descartará los destinos privados.

Limitaciones en el número de peticiones:

  • Ineskup: existe una limitación, por usuario, de 10 mensajes cada 60 segundos. Es un mensaje cada 6 segundos o 360 por hora; creemos que son más que suficientes para un uso razonable de Eskup. De cualquier forma, si crees que necesitas más, háznoslo saber.
  • No existe ningún otro tipo de limitación o rate-limit. Hagamos un uso razonable de Eskup y así no tendremos que replantearnos esta decisión :)

Dudas, recomendaciones, bugs, etc.:

Como ya sabes, en ELPAIS.com queremos escuchar los comentarios de nuestros usuarios pero, si cabe, aún más en Eskup. Es muy importante que cualquier duda que tengas, problema, sugerencia, etc. nos la envíes al tema *eskup, e intentaremos contestaros lo más rápido posible.

Ineskup

Es el handler encargado de procesar las peticiones relacionadas con los mensajes

Formato de la petición:

http://eskup.elpais.com/Ineskup

Parámetros:

id Clave pública del usuario (tal y como aparece en tu página "Opciones"). Es un parámetro obligatorio.
c Comando a ejecutar sobre el mensaje.
Posibles valores:
  • add crear un nuevo mensaje (valor por defecto si se omite el parámetro)
  • del borrar un mensaje
  • edit modificar un mensaje
  • reply responder a un mensaje
Restricciones:
  • Solo pueden borrarse mensajes propios, o bien los que pertenezcan a un tema en el cual sea administrador.
  • Solo pueden editarse mensajes propios.
m Contenido del mensaje.

Indica el contenido del mensaje, tanto para mensajes nuevos y reenvíos (c=add), como para respuestas ( c=reply ) y ediciones ( c=edit ). Es un parámetro obligatorio, excepto cuando se borra un mensaje ( c=del ), que se ignora. Permite la inclusión de etiquetas HTML <b> </b> y <i> </i> para resaltar texto en negrita y/o cursiva.

Restricciones:
  • No puede sobrepasar el número máximo de caracteres
  • No puede ser vacío (excepto si el comando es del )
  • Tras eliminar caracteres no permitidos, el mensaje no puede ser vacío
t Destino del mensaje.

Indica el destino del mensaje. Se pueden indicar varios destinos separando el nombre de los mismos con el carácter | .

Posibles casos:
  • Si se omite este parámetro, el destino del mensaje será el apartado 'Mis mensajes' del usuario
  • Para enviar el mensaje a uno o varios temas, debe indicarse el nombre de los mismos precedidos por el carácter * y separados por el carácter | . Ejemplo: t=*eskup|*demiscasillas
  • Para indicar como destino uno o varios usuarios (como mensaje privado), deberán indicarse sus nicknames separados por el carácter | . Ejemplo: t=fulanito|menganito
  • Si el comando es diferente a add, se podrá indicar sólo un destino
  • Para eliminar un mensaje privado (comando del ), se debe indicar como valor t=p
Restricciones:
  • El usuario sólo puede escribir en los temas en que haya solicitado y en los que esté autorizado, que estén disponibles en ese momento
  • El usuario sólo puede mandar mensajes privados a usuarios que no le tengan bloqueado
  • No se pueden enviar mensajes privados a usuarios y a temas a la vez: al enviar un mensaje privado a un tema, éste dejaría de ser privado, con lo cual su comportamiento ya no sería coherente
  • Solo se pueden editar mensajes (comando edit ) especificando como destino 'Mis mensajes'
  • Solo se pueden borrar mensajes de temas en los que tenga permiso para ello: si el usuario tiene permisos de administrador en un tema, podrá eliminar mensajes en ese tema pertenecientes a otros usuarios (ojo: el mensaje se borrará sólo del tema indicado, no del apartado "Mis mensajes" del autor del mensaje)
x Datos extra.
Posibles valores:
  • Si el comando es add, el mensaje se tratará como un reenvío (FWD), y el valor de este parámetro será el identificador de mensaje a reenviar
  • Si el comando es del, el valor de este parámetro será el identificador del mensaje a borrar
  • Si el comando es edit, el valor de este parámetro será el identificador del mensaje a editar
  • si el comando es reply, el valor de este parámetro será el identificador de mensaje al que se quiere contestar
Restricciones:
  • Si el comando es diferente a 'add', este parámetro siempre deberá contener valor
f Formato de respuesta a la petición.
Posibles valores:
  • text texto plano (valor por defecto)
  • json
  • xml
  • html
p Imagen asociada al mensaje.

Para el envío de imágenes es necesario que la petición sea por POST con enctype="multipart/form-data" .

Restricciones:
  • No deberá superar el tamaño máximo permitido
d Destinos externos del mensaje

Para indicar si hay que enviar el mensaje a Twitter (d=1), Facebook (d=2) o a ambos (d=1|2).

Otros errores asociados al handler:

  • Si se sobrepasa el número máximo de peticiones permitidas por minuto

Formato de la respuesta (cuando la petición es correcta):

text
ok
[extra-info]
<id-mensaje>
json
{'status':'ok','info':'[extra-info]','idmsg':'<id-mensaje>'}
xml
<eskup>

   <status>ok</status>

   <info><![CDATA[[extra-info]]]></info>

   <idmsg><id-mensaje></idmsg>

</eskup>
html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
   <head>
      <title>Eskup</title>
   </head>
   <body>
      <h1 id="status">OK</h1>
      <p id="info">[extra-info]</p>
      <p id="idmsg"><id-mensaje></p>
   </body>
</html> 

[extra-info] contendrá información adicional sobre la acción realizada

<id-mensaje> contendrá el identificador del nuevo mensaje generado

Formato de la respuesta (cuando la petición devuelve un error):

Cuando la petición devuelve error se hace una redirección a la siguiente url, donde se especifica el error ocurrido:

http://eskup.elpais.com/Scripts/errors.html

text
error <codigo_error>
[info_error]
json
{'status':'error','code':'<codigo_error>','info':'[info_error]'}<codigo_error>
xml
<eskup>
 <status>error</status>
 <code><codigo_error></code>
 <info><![CDATA[[info_error]]]></info>
</eskup>
html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
   <head>
      <title>Eskup</title>
   </head>
   <body>
      <h1 id="status">ERROR</h1>
      <p id="code"><codigo_error></p>
      <p id="info">[info_error]</p>
   </body>
</html>

[codigo_error] código interno del error

[info_error] información adicional sobre el error

Ejemplos

http://eskup.elpais.com/Ineskup?id=<public_ID>&c=add&m=<mensaje>
Enviar un mensaje a 'Mis mensajes'
http://eskup.elpais.com/Ineskup?id=<public_ID>&c=add&m=<mensaje>t=fulanito|menganito
Enviar un mensaje privado a 'fulanito' y a 'menganito'
http://eskup.elpais.com/Ineskup?id=<public_ID>&c=add&m=<mensaje>&t=*hartosdelcoche
Enviar un mensaje al tema 'Hartos del coche'
http://eskup.elpais.com/Ineskup?id=<public_ID>&c=add&m=<mensaje>&t=*eskup|*loquepasaporlatele
Enviar un mensaje a los temas 'Eskup' y 'Lo que pasa por la tele'
http://eskup.elpais.com/Ineskup?id=<public_ID>&c=reply&x=<id_mensaje_a_responder>&m=<mensaje_respuesta>
Responder a un mensaje
http://eskup.elpais.com/Ineskup?id=<public_ID>&c=del&x=<id_mensaje_a_borrar>
Borrar un mensaje
http://eskup.elpais.com/Ineskup?id=<public_ID>&c=del&x=<id_mensaje_a_borrar>&t=p
Borrar un mensaje privado de mi tablón 'Privados'
http://eskup.elpais.com/Ineskup?id=<public_ID>&c=edit&x=<id_mensaje_a_editar>&m=<nuevo_mensaje>
Editar un mensaje
http://eskup.elpais.com/Ineskup?id=<public_ID>&c=add&x=<id_mensaje_a_reenviar>&m=<mensaje_reenviado>
Reenviar un mensaje

Outeskup

Es el handler encargado de devolver los mensajes, agrupados según se pidan.

Formato de la petición:

http://eskup.elpais.com/Outeskup

Parámetros:

id Clave pública que identifica al usuario
t Tablón solicitado.
(Por defecto 2)
  • t1-usuario Tablón de mensajes enviados por <usuario>
  • t4-usuario Tablón de referencias o respuestas a <usuario>

Solo se pueden pedir si se está autenticado

  • 2 Tablón de los usuarios/eventos que sigue el usuario identificado por id.
  • 3 Tablón de los mensajes privados enviados/recibidos por el usuario identificado por id.
f Formato.
(Por defecto json)
  • json Formato por defecto. Es el usuado preferentemente desde javascript.
  • xml XML estricto fácilmente parseable en cualquier lenguaje.
  • rss Formato para poder leer tu tablón en cualquier lector RSS estándar.
p Número de página. (Por defecto 1)
msg Identificador de un mensaje si lo que queremos es un hilo o un mensaje suelto.
th Quiero un hilo (1) o solo el mensaje (0) referenciado por msg.
ts Fecha de última actualización (en formato timestamp de unix).  Si se envía este dato se utiliza para decidir si la información en el servidor es posterior o no a la fecha indicada.
nummsg Número de mensajes por página. (Por defecto 50, máximo 100)

Ejemplos de PETICIONES DE INFORMACIÓN PÚBLICA:

http://eskup.elpais.com/Outeskup?t=t1-<usuario> flecha El tablón de un usuario
http://eskup.elpais.com/Outeskup?t=t4-<usuario> flecha El tablón de referencias a un usuario
http://eskup.elpais.com/Outeskup?msg=<id_mensaje> flecha Un mensaje específico
http://eskup.elpais.com/Outeskup?msg=<id_mensaje>&th=1 flechaHilo de conversación a la que pertenece un mensaje específico

Ejemplos de PETICIONES DE INFORMACIÓN PRIVADA:

http://eskup.elpais.com/Outeskup?t=2&id=<public_ID> flechaMi tablón de suscripciones
http://eskup.elpais.com/Outeskup?t=3&id=<public_ID> flechaMis mensajes privados

FORMATO DE LA RESPUESTA:

numMensajes Número de mensajes existentes en el tablón
errorCode Código de error. Si está todo correcto es 0
ts Timestamp pasado por parámetro. Si no se pasó nada, hora actual.
horaActual Timestamp de la hora actual.
ultimavisita Solo si la petición es de un usuario autenticado
updated Fecha de actualización
  • [tablon_pedido] timestamp de última actualización del tablón pedido

Solo si la petición es de un usuario autenticado:

  • t2-<usuario_autenticado> timestamp de última actualización del tablón 2 del usuario autenticado
  • t3-<usuario_autenticado> timestamp de última actualización del tablón 3 del usuario autenticado
mensajes Lista de mensajes

Cada mensaje contiene:

  • idMsg Identificador único del mensaje.
  • usuarioOrigen Autor del mensaje.
  • contenido Texto del mensaje.
  • CopiaEnTablones Tablones en los que se encuentra el mensaje. Al menos, siempre en el del autor.
  • tsMensaje Fecha de creación del mensaje.
  • borrado Si el mensaje está borrado y no se eliminó de la DB estará a 1. El contenido se borra.
  • via Método de envío del mensaje. Por ahora puede ser: web (sms está reservado para uso en el futuro)
  • reenvio Si es un reenvío. Identificador del mensaje reenviado.

Si incluye una imagen:

  • cont_adicional Path de la imagen, si el mensaje incluye una. 0 si no hay imagen.
  • cont_adicional_tipo Tipo de contenido. Por el momento "IMAGEN"
  • cont_adicional_dimx Tamaño x de la imagen.
  • cont_adicional_dimy Tamaño y de la imagen.

En caso de que forme parte de una conversación :

  • hilo Identificador del mensaje de inicio de la conversación.
  • idMsgRespuesta Identificador del mensaje al que se responde.
  • autorMsgRespuesta Autor del mensaje al que respondo.
  • level Nivel de indentación del mensaje con respecto al hilo completo.
perfilesUsuarios Perfiles de todos los usuarios que aparezcan en los mensajes del listado de mensajes
  • pathfoto Url de la foto
  • descripcion Descripción que el usuario quiere dar de sí mismo
  • urlwebpersonal URL de la página personal
  • urltwitter URL de la pagina del usuario en Twitter
  • urlblog URL del blog del usuario

  Si el perfil es público, se devuelven también:

  • nombre
  • apellidos
perfilesEventos Perfiles de todos los eventos que aparezcan en los mensajes del listado de mensajes
  • nombre Nombre del evento.
  • pathfoto Url de la foto asociada al evento.
  • descripcion Descripción del evento.
  • num_mensajes Número de mensajes en el evento.
  • numero_seguidores_evento Número de seguidores que tiene.
  • numero_writers_evento Número de usuarios que pueden escribir en el evento.
  • ts_ultimo_mensaje timestamp del último mensaje enviado al tablón.
  • sub_automatica Si es de suscripción automática o hay que pedir permiso.
  • activo Si está activo o cerrado.
  • nombreparamovil (Reservado para uso en el futuro) Cadena de texto que identifica al evento para los envíos sms.
  • adm Administrador/es del evento.
  • prop Propietario/s del evento.
  • etiquetas Etiquetas asociadas al evento.
  • ts_inicio Timestamp de inicio del evento.
  • ts_final Timestamp de fin del evento.

Ejemplo de respuesta en JSON

Petición:

http://eskup.elpais.com/Outeskup?t=ev-eskup&nummsg=2

Respuesta:

{
   "numMensajes" : 5,
   "horaActual" : 1275327910,
   "errorCode" : 0,
   "ts" : "1275327910.05798292",
   "ultimaVisita" : 0,
   "updated" : {
      "ev-eskup" : 1275316378
   },
   "perfilesEventos" : {
      "eskup" : {
         "estado_seguimiento" : 0,
         "ts_ultimo_mensaje" : "1275316379.70689702",
         "tipo_suscripcion" : 1,
         "codigo_html_libre" : 0,
         "sub_automatica" : 0,
         "activo" : 1,
         "estado_escritura" : 0,
         "numero_caracteres_mensaje" : 280,
         "nombre" : "Eskup",
         "numero_seguidores_evento" : 0,
         "ts_inicio" : 1275316203,
         "ts_final" : 2147483647,
         "adm" : [],
         "prop" : [
            "elpais"
         ],
         "pathfoto" : "",
         "refresco_automatico" : 0,
         "apoyos" : {
            "1" : {
               "tipo_apoyo" : "",
               "titulo_apoyo" : "",
               "enlace_apoyo" : ""
            },
            "4" : {
               "tipo_apoyo" : "",
               "titulo_apoyo" : "",
               "enlace_apoyo" : ""
            },
            "3" : {
               "tipo_apoyo" : "",
               "titulo_apoyo" : "",
               "enlace_apoyo" : ""
            },
            "2" : {
               "tipo_apoyo" : "",
               "titulo_apoyo" : "",
               "enlace_apoyo" : ""
            }
         },
         "clave_publicidad" : "",
         "numero_writers_evento" : 2,
         "nombreparamovil" : "",
         "descripcion" : "Aquí podrás debatir todo aquello relacionado con Eskup como
                          herramienta, enviar tus dudas sobre el funcionamiento, etc.",
         "etiquetas" : [],
         "num_mensajes" : 2
      }
   },
   "mensajes" : [
      {
         "tsMensaje" : 1275316378,
         "reenvio" : 0,
         "usuarioOrigen" : "oscar",
         "borrado" : 0,
         "autorMsgRespuesta" : 0,
         "level" : 0,
         "via" : "web",
         "idMsg" : "1275316378-2d88140357ba9cc6e545c01bf14be2d6",
         "hilo" : 0,
         "cont_adicional" : 0,
         "CopiaEnTablones" : "t1-oscar,ev-eskup",
         "idMsgRespuesta" : 0,
         "contenido" : "Tengo una duda sobre cómo funciona Eskup. ¿Es en este tema
                        en el que se deben preguntar estas cosas?"
      },
      {
         "tsMensaje" : 1275316331,
         "reenvio" : 0,
         "usuarioOrigen" : "oscar",
         "borrado" : 0,
         "autorMsgRespuesta" : 0,
         "level" : 0,
         "via" : "web",
         "idMsg" : "1275316331-aced01f435d25bb91535b13d5f8f234f",
         "hilo" : 0,
         "cont_adicional" : 0,
         "CopiaEnTablones" : "t1-oscar,ev-eskup",
         "idMsgRespuesta" : 0,
         "contenido" : "Esto de Eskup tiene buena pinta..."
      }
   ],
   "perfilesUsuarios" : {
      "oscar" : {
         "urltwitter" : "http://twitter.com/oscaretu",
         "seguido" : 0,
         "pathfoto" : "",
         "numero_eventos_escribe" : 1,
         "bloqueado" : 0,
         "activo" : 0,
         "apellidos" : "",
         "urlblog" : "",
         "urlwebpersonal" : "http://www.soitu.es/u/oscar",
         "descripcion" : "Mutante",
         "nombre" : ""
      }
   }
}

                      

Ejemplo de respuesta en XML

Petición:

http://eskup.elpais.com/Outeskup?t=ev-eskup&nummsg=2&f=xml

Respuesta:


<xml>
  <numMensajes><![CDATA[2]]></numMensajes>
  <errorCode><![CDATA[0]]></errorCode>
  <ts><![CDATA[1275326221.3943181]]></ts>
  <perfilesEventos>
    <eskup>
      <estado_seguimiento><![CDATA[0]]></estado_seguimiento>
      <ts_ultimo_mensaje><![CDATA[1275316379.70689702]]></ts_ultimo_mensaje>
      <tipo_suscripcion><![CDATA[1]]></tipo_suscripcion>
      <codigo_html_libre><![CDATA[0]]></codigo_html_libre>
      <sub_automatica><![CDATA[0]]></sub_automatica>
      <activo><![CDATA[1]]></activo>
      <estado_escritura><![CDATA[0]]></estado_escritura>
      <numero_caracteres_mensaje><![CDATA[280]]></numero_caracteres_mensaje>
      <nombre><![CDATA[Eskup]]></nombre>
      <numero_seguidores_evento><![CDATA[0]]></numero_seguidores_evento>
      <ts_inicio><![CDATA[1275316203]]></ts_inicio>
      <ts_final><![CDATA[2147483647]]></ts_final>
      <adm></adm>
      <prop>
        <element><![CDATA[elpais]]></element>
      </prop>
      <pathfoto><![CDATA[]]></pathfoto>
      <refresco_automatico><![CDATA[0]]></refresco_automatico>
      <apoyos>
        <_4>
          <titulo_apoyo><![CDATA[]]></titulo_apoyo>
          <tipo_apoyo><![CDATA[]]></tipo_apoyo>
          <enlace_apoyo><![CDATA[]]></enlace_apoyo>
        </_4>
        <_1>
          <titulo_apoyo><![CDATA[]]></titulo_apoyo>
          <tipo_apoyo><![CDATA[]]></tipo_apoyo>
          <enlace_apoyo><![CDATA[]]></enlace_apoyo>
        </_1>
        <_3>
          <titulo_apoyo><![CDATA[]]></titulo_apoyo>
          <tipo_apoyo><![CDATA[]]></tipo_apoyo>
          <enlace_apoyo><![CDATA[]]></enlace_apoyo>
        </_3>
        <_2>
          <titulo_apoyo><![CDATA[]]></titulo_apoyo>
          <tipo_apoyo><![CDATA[]]></tipo_apoyo>
          <enlace_apoyo><![CDATA[]]></enlace_apoyo>
        </_2>
      </apoyos>
      <clave_publicidad><![CDATA[]]></clave_publicidad>
      <descripcion><![CDATA[Aquí podrás debatir todo aquello relacionado con Eskup como
                 herramienta, enviar tus dudas sobre el funcionamiento, etc.]]></descripcion>
      <nombreparamovil><![CDATA[]]></nombreparamovil>
      <numero_writers_evento><![CDATA[2]]></numero_writers_evento>
      <num_mensajes><![CDATA[2]]></num_mensajes>
      <etiquetas></etiquetas>
    </eskup>
  </perfilesEventos>
  <perfilesUsuarios>
    <oscar>
      <urltwitter><![CDATA[http://twitter.com/oscaretu]]></urltwitter>
      <seguido><![CDATA[0]]></seguido>
      <pathfoto><![CDATA[]]></pathfoto>
      <numero_eventos_escribe><![CDATA[1]]></numero_eventos_escribe>
      <bloqueado><![CDATA[0]]></bloqueado>
      <activo><![CDATA[0]]></activo>
      <apellidos><![CDATA[]]></apellidos>
      <urlblog><![CDATA[]]></urlblog>
      <urlwebpersonal><![CDATA[http://www.soitu.es/u/oscar]]></urlwebpersonal>
      <descripcion><![CDATA[Mutante]]></descripcion>
      <nombre><![CDATA[]]></nombre>
    </oscar>
  </perfilesUsuarios>
  <mensajes>
    <element>
      <reenvio><![CDATA[0]]></reenvio>
      <tsMensaje><![CDATA[1275316378]]></tsMensaje>
      <usuarioOrigen><![CDATA[oscar]]></usuarioOrigen>
      <borrado><![CDATA[0]]></borrado>
      <autorMsgRespuesta><![CDATA[0]]></autorMsgRespuesta>
      <via><![CDATA[web]]></via>
      <idMsg><![CDATA[1275316378-2d88140357ba9cc6e545c01bf14be2d6]]></idMsg>
      <hilo><![CDATA[0]]></hilo>
      <level><![CDATA[0]]></level>
      <CopiaEnTablones><![CDATA[t1-oscar,ev-eskup]]></CopiaEnTablones>
      <cont_adicional><![CDATA[0]]></cont_adicional>
      <idMsgRespuesta><![CDATA[0]]></idMsgRespuesta>
      <contenido><![CDATA[Tengo una duda sobre cómo funciona Eskup. ¿Es en este tema
              en el que se deben preguntar estas cosas?]]></contenido>
    </element>
    <element>
      <reenvio><![CDATA[0]]></reenvio>
      <tsMensaje><![CDATA[1275316331]]></tsMensaje>
      <usuarioOrigen><![CDATA[oscar]]></usuarioOrigen>
      <borrado><![CDATA[0]]></borrado>
      <autorMsgRespuesta><![CDATA[0]]></autorMsgRespuesta>
      <via><![CDATA[web]]></via>
      <idMsg><![CDATA[1275316331-aced01f435d25bb91535b13d5f8f234f]]></idMsg>
      <hilo><![CDATA[0]]></hilo>
      <level><![CDATA[0]]></level>
      <CopiaEnTablones><![CDATA[t1-oscar,ev-eskup]]></CopiaEnTablones>
      <cont_adicional><![CDATA[0]]></cont_adicional>
      <idMsgRespuesta><![CDATA[0]]></idMsgRespuesta>
      <contenido><![CDATA[Esto de Eskup tiene buena pinta...]]></contenido>
    </element>
  </mensajes>
  <updated>
    <ev-eskup><![CDATA[1275316378]]></ev-eskup>
  </updated>
  <ultimavisita><![CDATA[0]]></ultimavisita>
  <horaActual>1275326221</horaActual>
</xml>

 

Profileeskup

Es el handler encargado de gestionar la información de los usuarios y de los temas.

Formato de la petición:

http://eskup.elpais.com/Profileeskup

Parámetros:

id Clave pública que identifica al usuario
action Acción a realizar.
Posibles valores:
  • add_usuarios
  • add_eventos
  • add_denegaciones
  • add_writers
  • del_usuarios
  • del_eventos
  • del_denegaciones
  • del_writers
  • list_usuarios
  • list_eventos
  • list_seguidores
  • list_writers
  • list_denegaciones
  • info_usuarios
  • info_eventos
f Formato de la respuesta.
Posibles valores:
  • json
  • xml
data Información a añadir/eliminar. Ej: lista de usuarios/eventos a añadir, borrar, listar
user Usuario sobre el que realizar la acción (las permitidas) si no es el identificado.
event Evento sobre el que realizar la acción.
msg Mensaje adjunto para los casos que se necesitan. (Cuando se pide escribir en un evento)
pag Número de página cuando las respuestas no caben en una sola página (por defecto 1).
maxResp Número máximo de respuestas por página (por defecto 30, máximo 100. 33 en el caso de sort tipo 1).
sort Hay dos tipos de ordenación. Por orden inverso a la hora de apuntarse (tipo 0) y por actividad (tipo 1. No tiene paginación)

EJEMPLOS de petición de información pública

http://eskup.elpais.com/Profileeskup?action=info_usuarios&user=<usuario>
Información de un usuario
http://eskup.elpais.com/Profileeskup?action=info_eventos&event=<evento>
Información de un evento
http://eskup.elpais.com/Profileeskup?action=list_usuarios&user=<usuario>
A quién sigue un usuario
http://eskup.elpais.com/Profileeskup?action=list_eventos&user=<usuario>
Lista de eventos que sigue un usuario
http://eskup.elpais.com/Profileeskup?action=list_seguidores&user=<usuario>
Seguidores de un usuario
http://eskup.elpais.com/Profileeskup?action=list_seguidores&event=<evento>
Seguidores de un evento
http://eskup.elpais.com/Profileeskup?action=list_writers&event=<evento>
Quién puede escribir en un evento

EJEMPLOS DE PETICIÓN DE INFORMACIÓN PRIVADA

http://eskup.elpais.com/Profileeskup?action=add_eventos&id=<public_ID>&data=<lista de eventos separados por ,>
Seguir un evento
http://eskup.elpais.com/Profileeskup?action=del_eventos&id=<public_ID>&data=<lista de eventos separados por ,>
Dejar de seguir un evento
http://eskup.elpais.com/Profileeskup?action=add_usuarios&id=<public_ID>&data=<lista usuarios separados por ,>
Seguir a un usuario
http://eskup.elpais.com/Profileeskup?action=del_usuarios&id=<public_ID>&data=<lista usuarios separados por ,>
Dejar de seguir a un usuario
http://eskup.elpais.com/Profileeskup?action=add_denegaciones&id=<public_ID>&data=<lista usuarios separados por ,>
Bloquear un usuario para que no nos mande privados
http://eskup.elpais.com/Profileeskup?action=del_denegaciones&id=<public_ID>&data=<lista usuarios separados por ,>
Desbloquear un usuario
http://eskup.elpais.com/Profileeskup?action=list_denegaciones&id=<public_ID>
Lista de usuarios bloqueados
http://eskup.elpais.com/Profileeskup?action=add_writers&id=<public_ID>&data=<lista de eventos separados por ,>&msg=<mensaje_de_peticion_si_es_un_evento_cerrado>
Solicitar poder escribir en uno o varios eventos
http://eskup.elpais.com/Profileeskup?action=del_writers&id=<public_ID>&data=<lista de eventos separados por ,>
Dejar de escribir en un evento
http://eskup.elpais.com/Profileeskup?action=list_writers&id=<public_ID>
Listado de los eventos en los que puede escribir un usuario

FORMATO DE LA RESPUESTA

pagina Número de página
numeroUsuarios Número de usuarios ( si se pidió usuarios o seguidores )
numeroEventos Número de eventos ( si se pidieron eventos )
perfilesUsuarios Perfiles de todos los usuarios si se pidió usuarios o seguidores

Cada perfil está definido por el nombre del usuario y contiene:

  • pathfoto Url de la foto.
  • descripcion
  • urlwebpersonal
  • urltwitter
  • urlblog

Si quien hace la petición está autenticado:

  • seguido Si el usuario que hace la petición le sigue o no.
  • bloqueado Si el usuario que hace la petición le tiene bloqueado o no.

Si el perfil es público, se devuelven también:

  • nombre
  • apellidos

Si lo que pedí fue info y no un listado:

  • numero_usuarios Número de usuarios a los que sigue.
  • numero_seguidores Número de usuarios que le siguen.
  • numero_eventos Número de eventos que sigue.
  • numero_mensajes_referenciados Número de mensajes en los que se le menciona y/o contesta.
  • numero_mensajes_propios Número de mensajes enviados.
perfilesEventos Perfiles de todos los eventos si se pidieron eventos

Cada perfil está definido por el nombre del evento y contiene:

  • nombre Nombre del evento.
  • pathfoto Url de la foto asociada al evento.
  • descripcion Descripción del evento.
  • num_mensajes Número de mensajes en el evento.
  • numero_seguidores_evento Número de seguidores que tiene.
  • numero_writers_evento Número de usuarios que pueden escribir en el evento.
  • ts_ultimo_mensaje timestamp del último mensaje enviado al tablón.
  • sub_automatica Si es de suscripción automática o hay que pedir permiso.
  • activo Si está activo o cerrado.
  • nombreparamovil (Reservado para uso en el futuro) Cadena de texto que identifica al evento para los envíos sms.
  • adm Administrador/es del evento.
  • prop Propietario/s del evento.
  • etiquetas Etiquetas asociadas al evento.
  • ts_inicio Timestamp de inicio del evento.
  • ts_final Timestamp de fin del evento.

Si quien hace la petición está autenticado

  • estado_seguimiento Si el usuario que hace la petición sigue este evento o no.
  • estado_escritura Si el usuario que hace la petición puede escribir en este evento.

EJEMPLO DE RESPUESTA EN JSON

Petición:

http://eskup.elpais.com/Profileeskup?action=info_eventos&event=eskup

Respuesta:


{
   "ts_actual" : 1275385671,
   "perfilesEventos" : {
      "eskup" : {
         "estado_seguimiento" : 0,
         "ts_ultimo_mensaje" : "1275330816.43742609",
         "tipo_suscripcion" : 1,
         "codigo_html_libre" : 0,
         "sub_automatica" : 0,
         "activo" : 1,
         "estado_escritura" : 0,
         "numero_caracteres_mensaje" : 280,
         "nombre" : "Eskup",
         "numero_seguidores_evento" : 0,
         "ts_inicio" : 1275316203,
         "ts_final" : 2147483647,
         "adm" : [],
         "prop" : [
            "elpais"
         ],
         "pathfoto" : "",
         "refresco_automatico" : 0,
         "apoyos" : {
            "1" : {
               "tipo_apoyo" : "",
               "titulo_apoyo" : "",
               "enlace_apoyo" : ""
            },
            "4" : {
               "tipo_apoyo" : "",
               "titulo_apoyo" : "",
               "enlace_apoyo" : ""
            },
            "3" : {
               "tipo_apoyo" : "",
               "titulo_apoyo" : "",
               "enlace_apoyo" : ""
            },
            "2" : {
               "tipo_apoyo" : "",
               "titulo_apoyo" : "",
               "enlace_apoyo" : ""
            }
         },
         "clave_publicidad" : "",
         "numero_writers_evento" : 2,
         "nombreparamovil" : "",
         "descripcion" : "Aquí podrás debatir todo aquello relacionado con Eskup como
              herramienta, enviar tus dudas sobre el funcionamiento, etc.",
         "etiquetas" : [],
         "num_mensajes" : 5
      }
   }
}

   

EJEMPLO DE RESPUESTA EN XML

Petición:

http://eskup.elpais.com/Profileeskup?action=info_eventos&event=eskup&f=xml

Respuesta:


<xml>
  <ts_actual><![CDATA[1275385696]]></ts_actual>
  <perfilesEventos>
    <eskup>
      <estado_seguimiento><![CDATA[0]]></estado_seguimiento>
      <ts_ultimo_mensaje><![CDATA[1275330816.43742609]]></ts_ultimo_mensaje>
      <tipo_suscripcion><![CDATA[1]]></tipo_suscripcion>
      <codigo_html_libre><![CDATA[0]]></codigo_html_libre>
      <sub_automatica><![CDATA[0]]></sub_automatica>
      <activo><![CDATA[1]]></activo>
      <estado_escritura><![CDATA[0]]></estado_escritura>
      <numero_caracteres_mensaje><![CDATA[280]]></numero_caracteres_mensaje>
      <nombre><![CDATA[Eskup]]></nombre>
      <numero_seguidores_evento><![CDATA[0]]></numero_seguidores_evento>
      <ts_inicio><![CDATA[1275316203]]></ts_inicio>
      <ts_final><![CDATA[2147483647]]></ts_final>
      <adm></adm>
      <prop>
        <element><![CDATA[elpais]]></element>
      </prop>
      <pathfoto><![CDATA[]]></pathfoto><refresco_automatico><![CDATA[0]]></refresco_automatico>
      <apoyos>
        <_4>
          <titulo_apoyo><![CDATA[]]></titulo_apoyo>
          <tipo_apoyo><![CDATA[]]></tipo_apoyo>
          <enlace_apoyo><![CDATA[]]></enlace_apoyo>
        </_4>
        <_1>
          <titulo_apoyo><![CDATA[]]></titulo_apoyo>
          <tipo_apoyo><![CDATA[]]></tipo_apoyo>
          <enlace_apoyo><![CDATA[]]></enlace_apoyo>
        </_1>
        <_3>
          <titulo_apoyo><![CDATA[]]></titulo_apoyo>
          <tipo_apoyo><![CDATA[]]></tipo_apoyo>
          <enlace_apoyo><![CDATA[]]></enlace_apoyo>
        </_3>
        <_2>
          <titulo_apoyo><![CDATA[]]></titulo_apoyo>
          <tipo_apoyo><![CDATA[]]></tipo_apoyo>
          <enlace_apoyo><![CDATA[]]></enlace_apoyo>
        </_2>
      </apoyos>
      <clave_publicidad><![CDATA[]]></clave_publicidad>
      <descripcion><![CDATA[Aquí podrás debatir todo aquello relacionado con Eskup como 
          herramienta, enviar tus dudas sobre el funcionamiento, etc.]]></descripcion>
      <nombreparamovil><![CDATA[]]></nombreparamovil>
      <numero_writers_evento><![CDATA[2]]></numero_writers_evento><num_mensajes><![CDATA[5]]>
      </num_mensajes><etiquetas></etiquetas>
    </eskup>
  </perfilesEventos>
</xml>