Como ya contamos, UTOI es realmente el sistema de mensajería de SOITU.ES con el que nos comunicaremos usando un API. Por ahora, podemos distinguir tres puntos de acceso a ese API:
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.
Además, como acabamos de ver, cada objeto puede disponer de hasta 4 tablones:
Como ya sabes, en SOITU.ES queremos escuchar los comentarios de nuestros usuarios pero, si cabe, aún más en UTOI. Es muy importante que cualquier duda que tengas, problema, sugerencia, etc. nos la envíes a al tema *utoi, intentaremos contestaros lo más rápido posible.
Es el handler encargado de procesar las peticiones relacionadas con los mensajes
http://utoi.soitu.es/Inutoi
id |
Clave pública del usuario (tal y como aparece en la página 'Perfil'). Si se llama desde el navegador, no es necesario porque la identificación del usuario se obtiene de la cookie. | |
|---|---|---|
c |
Comando a ejecutar sobre el mensaje. | Posibles valores:
Restricciones:
|
m |
Contenido del mensaje. | Indica el contenido del mensaje, tanto para mensajes
nuevos y reenvíos ( Restricciones:
|
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:
Restricciones:
|
x |
Datos extra. | Posibles valores:
Restricciones:
|
f |
Formato de respuesta a la petición. | Posibles valores:
|
p |
Imagen asociada al mensaje. | Para el envío de imágenes es necesario que la petición
sea por POST con Restricciones:
|
Otros errores asociados al handler:
text |
ok [extra-info] |
|---|---|
json |
{'status':'ok','info':'[extra-info]'}
|
xml |
<utoi> <status>ok</status> <info><![CDATA[[extra-info]]]></info> </utoi> |
html |
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>UTOI</title>
</head>
<body>
<h1 id="status">OK</h1>
<p id="info">[extra-info]</p>
</body>
</html>
|
[extra-info] contendrá información adicional sobre la acción
realizada
Cuando la petición devuelve error se hace una redirección a la siguiente url, donde se especifica el error ocurrido:
http://utoi.soitu.es/Scripts/errors.html
text |
error <codigo_error> [info_error] |
|---|---|
json |
{'status':'error','code':'<codigo_error>','info':'[info_error]'}<codigo_error>
|
xml |
<utoi> <status>error</status> <code><codigo_error></code> <info><![CDATA[[info_error]]]></info> </utoi> |
html |
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html>
<head>
<title>UTOI</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
http://utoi.soitu.es/Inutoi?id=<public_id>&c=add&m=<mensaje> |
|---|
| Enviar un mensaje a 'mis mensajes' |
http://utoi.soitu.es/Inutoi?id=<public_id>&c=add&m=<mensaje>t=fulanito|menganito |
| Enviar un mensaje privado a 'fulanito' y a 'menganito' |
http://utoi.soitu.es/Inutoi?id=<public_id>&c=add&m=<mensaje>&t=*hartosdelcoche |
| Enviar un mensaje al tema 'Hartos del coche' |
http://utoi.soitu.es/Inutoi?id=<public_id>&c=add&m=<mensaje>&t=*utoi|*loquepasaporlatele |
| Enviar un mensaje a los temas 'Utoi' y 'Lo que pasa por la tele' |
http://utoi.soitu.es/Inutoi?id=<public_id>&c=reply&x=<id_mensaje_a_responder>&m=<mensaje_respuesta> |
| Responder a un mensaje |
http://utoi.soitu.es/Inutoi?id=<public_id>&c=del&x=<id_mensaje_a_borrar> |
| Borrar un mensaje |
http://utoi.soitu.es/Inutoi?id=<public_id>&c=del&x=<id_mensaje_a_borrar>&t=p |
| Borrar un mensaje privado de mi tablón 'en privado' |
http://utoi.soitu.es/Inutoi?id=<public_id>&c=edit&x=<id_mensaje_a_editar>&m=<nuevo_mensaje> |
| Editar un mensaje |
http://utoi.soitu.es/Inutoi?id=<public_id>&c=add&x=<id_mensaje_a_reenviar>&m=<mensaje_reenviado> |
| Reenviar un mensaje |
Es el handler encargado de devolver los mensajes, agrupados según se pidan.
http://utoi.soitu.es/Oututoi
id |
Clave pública que identifica al usuario (si se llama desde el navegador estando autenticado, no es necesario porque se coge la cookie) | |
|---|---|---|
t |
Tablón solicitado. (Por defecto 2) |
Solo se pueden pedir si se está autenticado
|
f |
Formato. (Por defecto json) |
|
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) | |
http://utoi.soitu.es/Oututoi?t=t1-<usuario> |
El tablón de un usuario |
|---|---|
http://utoi.soitu.es/Oututoi?t=t4-<usuario> |
El tablón de referencias a un usuario |
http://utoi.soitu.es/Oututoi?msg=<id_mensaje> |
Un mensaje específico |
http://utoi.soitu.es/Oututoi?msg=<id_mensaje>&th=1 |
Hilo de conversación a la que pertenece un mensaje específico |
http://utoi.soitu.es/Oututoi?t=2&id=<public_id> |
Mi tablón de suscripciones |
|---|---|
http://utoi.soitu.es/Oututoi?t=3&id=<public_id> |
Mis mensajes privados |
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 |
Solo si la petición es de un usuario autenticado:
|
mensajes |
Lista de mensajes | Cada mensaje contiene:
Si incluye una imagen:
En caso de que forme parte de una conversación :
|
perfilesUsuarios |
Perfiles de todos los usuarios que aparezcan en los mensajes del listado de mensajes |
Si el perfil es público:
|
perfilesEventos |
Perfiles de todos los eventos que aparezcan en los mensajes del listado de mensajes |
|
Petición:
http://utoi.soitu.es/Oututoi?t=ev-ultimahora&nummsg=2
Respuesta:
{
"numMensajes":3518,
"errorCode":0,
"ts":"1253864685.0003",
"perfilesEventos":
{
"ultimahora":
{
"estado_seguimiento":0,
"ts_ultimo_mensaje":"1253861770.82295",
"sub_automatica":0,
"activo":1,
"estado_escritura":0,
"nombre":"Última hora",
"numero_seguidores_evento":97,
"ts_inicio":1241512105,
"ts_final":2147483647,
"adm":
[ ],
"prop":
[ "soitu" ],
"pathfoto":"http://utoi.soitu.es/Eventos/36/ultimahora/foto_evento.jpg",
"descripcion":"Desde la redacción de soitu.es os contamos lo que ocurre en el mundo, con enlaces
a noticias, vídeos, fotografías",
"nombreparamovil":"",
"numero_writers_evento":25,
"etiquetas":
[ ],
"num_mensajes":3518
}
},
"perfilesUsuarios":
{
"laredaccion":
{
"seguido":0,
"pathfoto":"http://utoi.soitu.es/Participacion/usuarios/perfil/75/laredaccion/laredaccion.jpg",
"bloqueado":0,
"apellidos":"",
"profesion":"",
"activo":1,
"urlwebpersonal":"",
"descripcion":"",
"nombre":""
}
},
"mensajes":
[
{
"reenvio":0,
"tsMensaje":1253856565,
"usuarioOrigen":"laredaccion",
"borrado":0,
"autorMsgRespuesta":0,
"cont_adicional_dimy":267,
"via":"web",
"idMsg":"1253856565-e420e780dc69b0d2f395667fe2379663",
"hilo":0,
"level":0,
"CopiaEnTablones":"t1-laredaccion,ev-ultimahora",
"cont_adicional":"/Imagenes/D6/AB/1253856565-e420e780dc69b0d2f395667fe2379663.jpg",
"cont_adicional_dimx":432,
"idMsgRespuesta":0,
"cont_adicional_tipo":"IMAGEN",
"contenido":"El G20 quiere consolidarse como un grupo de decisión. Algunas informaciones apuntan a
su constitución como un órgano permanente de coordinación económica, en detrimento del G8.
Entre tanto, Zapatero no para de hacerse fotos con Obama. Esta vez
sin niñas. http://cort.as/50m"
},
{
"reenvio":0,
"tsMensaje":1253850319,
"usuarioOrigen":"laredaccion",
"borrado":0,
"autorMsgRespuesta":0,
"via":"web",
"idMsg":"1253850319-551555f9aa96b4651d40543f2084c5b6",
"hilo":0,
"level":0,
"hayVideo":1,
"CopiaEnTablones":"t1-laredaccion,ev-ultimahora",
"cont_adicional":0,
"idMsgRespuesta":0,
"contenido":"Esta noche Larry King ha entrevistado a Hugo Chavez en su show de la CNN americana.
El presidente de Venezuela ha dicho que\"Hillary Clinton está muy perdida en su trabajo,
que la Administración Bush trató de asesinarle y que hay
dos Obamas\". http://www.youtube.com/watch?v=ygWLgvV5PO0"
}
],
"updated":
{
"ev-ultimahora":1253861766
},
"ultimaVisita":0,
"horaActual":1253864684
}
Petición:
http://utoi.soitu.es/Oututoi?t=ev-ultimahora&nummsg=2&f=xml
Respuesta:
<xml>
<numMensajes><![CDATA[3528]]></numMensajes>
<errorCode><![CDATA[0]]></errorCode>
<ts><![CDATA[1253870536.553]]></ts>
<perfilesEventos>
<ultimahora>
<estado_seguimiento><![CDATA[0]]></estado_seguimiento>
<ts_ultimo_mensaje><![CDATA[1253870015.57142]]></ts_ultimo_mensaje>
<sub_automatica><![CDATA[0]]></sub_automatica>
<activo><![CDATA[1]]></activo>
<estado_escritura><![CDATA[0]]></estado_escritura>
<nombre><![CDATA[Última hora]]></nombre>
<numero_seguidores_evento><![CDATA[97]]></numero_seguidores_evento>
<ts_inicio><![CDATA[1241512105]]></ts_inicio>
<ts_final><![CDATA[2147483647]]></ts_final>
<adm></adm>
<prop>
<element><![CDATA[soitu]]></element>
</prop>
<pathfoto><![CDATA[http://utoi.soitu.es/Eventos/36/ultimahora/foto_evento.jpg]]></pathfoto>
<descripcion><![CDATA[Desde la redacción de soitu.es os contamos lo que ocurre en
el mundo, con enlaces a noticias, vídeos, fotografías]]></descripcion>
<nombreparamovil><![CDATA[]]></nombreparamovil>
<numero_writers_evento><![CDATA[25]]></numero_writers_evento>
<etiquetas></etiquetas>
<num_mensajes><![CDATA[3528]]></num_mensajes>
</ultimahora>
</perfilesEventos>
<perfilesUsuarios>
<albertomoreno>
<seguido><![CDATA[0]]></seguido>
<pathfoto><![CDATA[http://utoi.soitu.es/Participacion/usuarios/perfil/79/alber
tomoreno/albertomoreno.jpg]]></pathfoto>
<bloqueado><![CDATA[0]]></bloqueado>
<apellidos><![CDATA[Moreno]]></apellidos>
<profesion><![CDATA[Periodista]]></profesion>
<activo><![CDATA[0]]></activo>
<urlwebpersonal><![CDATA[http://www.soitu.es/soitu/tags/portadilla/alberto%20moreno]]></urlwebpersonal>
<descripcion><![CDATA[]]></descripcion>
<nombre><![CDATA[Alberto]]></nombre>
</albertomoreno>
<laredaccion>
<seguido><![CDATA[0]]></seguido>
<pathfoto><![CDATA[http://utoi.soitu.es/Participacion/usuarios/perfil/75/lared
accion/laredaccion.jpg]]></pathfoto>
<bloqueado><![CDATA[0]]></bloqueado>
<apellidos><![CDATA[]]></apellidos>
<profesion><![CDATA[]]></profesion>
<activo><![CDATA[1]]></activo>
<urlwebpersonal><![CDATA[]]></urlwebpersonal>
<descripcion><![CDATA[]]></descripcion>
<nombre><![CDATA[]]></nombre>
</laredaccion>
</perfilesUsuarios>
<mensajes>
<element>
<reenvio><![CDATA[0]]></reenvio>
<tsMensaje><![CDATA[1253870015]]></tsMensaje>
<usuarioOrigen><![CDATA[laredaccion]]></usuarioOrigen>
<borrado><![CDATA[0]]></borrado>
<autorMsgRespuesta><![CDATA[0]]></autorMsgRespuesta>
<via><![CDATA[web]]></via>
<idMsg><![CDATA[1253870015-d15df4a04ac117558c8c82ca131a9485]]></idMsg>
<hilo><![CDATA[0]]></hilo>
<level><![CDATA[0]]></level>
<CopiaEnTablones><![CDATA[t1-laredaccion,ev-ultimahora,t4-albertomoreno]]></CopiaEnTablones>
<cont_adicional><![CDATA[0]]></cont_adicional>
<idMsgRespuesta><![CDATA[0]]></idMsgRespuesta>
<contenido><![CDATA[<b>Acaba la competición, empieza un fin de semana de premios en
Donostia</b>. Pero antes, Terry Gilliam, uno de los fundadores de Monty Phyton,
presenta <b>"The imaginarium of Doctor Parnassus"</b>, filme póstumo del actor
Heath Ledger. Como siempre, @<a href="http://utoi.soitu.es/albertomoreno"
target="_top">albertomoreno</a> nos dará todos los detalles.]]> </contenido>
</element>
<element>
<reenvio><![CDATA[0]]></reenvio>
<tsMensaje><![CDATA[1253869354]]></tsMensaje>
<usuarioOrigen><![CDATA[laredaccion]]></usuarioOrigen>
<borrado><![CDATA[0]]></borrado>
<autorMsgRespuesta><![CDATA[0]]></autorMsgRespuesta>
<cont_adicional_dimy><![CDATA[361]]></cont_adicional_dimy>
<via><![CDATA[web]]></via>
<idMsg><![CDATA[1253869354-3422564119f8f1395a95e2fdb8674358]]></idMsg>
<hilo><![CDATA[0]]></hilo>
<level><![CDATA[0]]></level>
<CopiaEnTablones><![CDATA[t1-laredaccion,ev-ultimahora]]></CopiaEnTablones>
<cont_adicional><![CDATA[/Imagenes/E7/3A/1253869354-3422564119f8f1395a95e2fdb8674358.jpg]]>
</cont_adicional>
<cont_adicional_dimx><![CDATA[432]]></cont_adicional_dimx>
<idMsgRespuesta><![CDATA[0]]></idMsgRespuesta>
<cont_adicional_tipo><![CDATA[IMAGEN]]></cont_adicional_tipo>
<contenido><![CDATA[El Gobierno firma hoy con los sindicatos <b>el convenio colectivo</b>
pactado el pasado 17 de septiembre para los años 2010-2012. Fijaba <b>un alza
salarial para el primer año del 0,3%</b> y establece como novedad la aplicación
de una cláusula de revisión. <a title="http://cort.as/51v" target="_blank"
href="http://cort.as/51v">http://cort.as/51v</a>]]></contenido>
</element>
</mensajes>
<updated>
<ev-ultimahora><![CDATA[1253870015]]></ev-ultimahora>
</updated>
<ultimavisita><![CDATA[0]]></ultimavisita>
<horaActual>1253870536</horaActual>
</xml>
Es el handler encargado de gestionar la información de los usuarios.
http://utoi.soitu.es/Profileutoi
id |
Clave pública que identifica al usuario (si se llama desde el navegador, no es necesario porque se coge la cookie) | |
|---|---|---|
action |
Acción a realizar. | Posibles valores:
|
f |
Formato de la respuesta. | Posibles valores:
|
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) |
http://utoi.soitu.es/Profileutoi?action=info_usuarios&user=<usuario> |
|---|
| Información de un usuario |
http://utoi.soitu.es/Profileutoi?action=info_eventos&event=<evento> |
| Información de un evento |
http://utoi.soitu.es/Profileutoi?action=list_usuarios&user=<usuario> |
| A quién sigue un usuario |
http://utoi.soitu.es/Profileutoi?action=list_eventos&user=<usuario> |
| Lista de eventos que sigue un usuario |
http://utoi.soitu.es/Profileutoi?action=list_seguidores&user=<usuario> |
| Seguidores de un usuario |
http://utoi.soitu.es/Profileutoi?action=list_seguidores&event=<evento> |
| Seguidores de un evento |
http://utoi.soitu.es/Profileutoi?action=list_writers&event=<evento> |
| Quién puede escribir en un evento |
http://utoi.soitu.es/Profileutoi?action=add_eventos&id=<public_id>&data=<lista de eventos separados por ,> |
|---|
| Seguir un evento |
http://utoi.soitu.es/Profileutoi?action=del_eventos&id=<public_id>&data=<lista de eventos separados por ,> |
| Dejar de seguir un evento |
http://utoi.soitu.es/Profileutoi?action=add_usuarios&id=<public_id>&data=<lista usuarios separados por ,> |
| Seguir a un usuario |
http://utoi.soitu.es/Profileutoi?action=del_usuarios&id=<public_id>&data=<lista usuarios separados por ,> |
| Dejar de seguir a un usuario |
http://utoi.soitu.es/Profileutoi?action=add_denegaciones&id=<public_id>&data=<lista usuarios separados por ,> |
| Bloquear un usuario para que no nos mande privados |
http://utoi.soitu.es/Profileutoi?action=del_denegaciones&id=<public_id>&data=<lista usuarios separados por ,> |
| Desbloquear un usuario |
http://utoi.soitu.es/Profileutoi?action=list_denegaciones&id=<public_id> |
| Lista de usuarios bloqueados |
http://utoi.soitu.es/Profileutoi?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://utoi.soitu.es/Profileutoi?action=del_writers&id=<public_id>&data=<lista de eventos separados por ,> |
| Dejar de escribir en un evento |
http://utoi.soitu.es/Profileutoi?action=list_writers&id=<public_id> |
| Listado de los eventos en los que puede escribir un usuario |
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:
Si quien hace la petición está autenticado:
Si el perfil es público :
Si lo que pedí fue info y no un listado:
|
perfilesEventos |
Perfiles de todos los eventos si se pidieron eventos | Cada perfil está definido por el nombre del evento y contiene:
Si quien hace la petición está autenticado
|
Petición:
http://utoi.soitu.es/Profileutoi?action=info_eventos&event=ultimahora
Respuesta:
{
"ts_actual":1253890549,
"perfilesEventos":
{
"ultimahora":
{
"estado_seguimiento":0,
"ts_ultimo_mensaje":"1253890362.40239",
"sub_automatica":0,
"activo":1,
"estado_escritura":0,
"nombre":"Última hora",
"numero_seguidores_evento":97,
"ts_inicio":1241512105,
"ts_final":2147483647,
"adm":[],
"prop":["soitu"],
"pathfoto":"http://utoi.soitu.es/Eventos/36/ultimahora/foto_evento.jpg",
"descripcion":"Desde la redacción de soitu.es os contamos lo que ocurre en el mundo,
con enlaces a noticias, vídeos, fotografías",
"nombreparamovil":"",
"numero_writers_evento":25,
"etiquetas":[],
"num_mensajes":3547
}
}
}
Petición:
http://utoi.soitu.es/Profileutoi?action=info_eventos&event=ultimahora&f=xml
Respuesta:
<xml>
<ts_actual><![CDATA[1253890729]]></ts_actual>
<perfilesEventos>
<ultimahora>
<estado_seguimiento><![CDATA[0]]></estado_seguimiento>
<ts_ultimo_mensaje><![CDATA[1253890362.40239]]></ts_ultimo_mensaje>
<sub_automatica><![CDATA[0]]></sub_automatica>
<activo><![CDATA[1]]></activo>
<estado_escritura><![CDATA[0]]></estado_escritura>
<nombre><![CDATA[Última hora]]></nombre>
<numero_seguidores_evento><![CDATA[97]]></numero_seguidores_evento>
<ts_inicio><![CDATA[1241512105]]></ts_inicio>
<ts_final><![CDATA[2147483647]]></ts_final>
<adm></adm>
<prop>
<element><![CDATA[soitu]]></element>
</prop>
<pathfoto><![CDATA[http://utoi.soitu.es/Eventos/36/ultimahora/foto_evento.jpg]]></pathfoto>
<descripcion><![CDATA[Desde la redacción de soitu.es os contamos lo que ocurre en el mundo,
con enlaces a noticias, vídeos, fotografías]]></descripcion>
<nombreparamovil><![CDATA[]]></nombreparamovil>
<numero_writers_evento><![CDATA[25]]></numero_writers_evento>
<etiquetas></etiquetas>
<num_mensajes><![CDATA[3547]]></num_mensajes>
</ultimahora>
</perfilesEventos>
</xml>