Presence API – Estado de MSN Messenger en Web (Live Dev)

Presence API - Estado de MSN Messenger en Web

Desde hace algo de tiempo MS ha intentado entrar al mercado de internet, si bien sus productos no han logrado ser populares me acabo de dar cuenta que tienen una API para obtener información de MSN Messenger.

Esto es realmente útil sobre todo por la gran cantidad de personas que usamos este servicio y que las páginas pueden beneficiarse de ello; en este caso probaremos el Presence API que es muy simple y nos permite obtener el estado de una persona mediante su ID.

Funcionamiento

Con esta herramienta podemos obtener su estado (En Línea, Ocupado, etc) el ícono de su estado (no el avatar que lamentablemente no se puede obtener) y el nombre que se ha asignado (también falta el mensaje que uno puede asignar en el messenger).

Inicialmente debemos de obtener el ID del usuario, para esto podemos ir a la siguiente liga:
http://settings.messenger.live.com/applications/websignup.aspx?returnurl=[URL]&privacyurl=[URL]

Donde returnurl es donde se pasarán los datos del usuario y privacyurl una liga donde se especifiquen los criterios de privacidad para que el usuario sepa que se hará con su cuenta.

En esta liga el usuario dará sus credenciales para acceder a su cuenta de messenger; después aceptará que nuestra aplicación pueda ver los detalles; aunque en realidad lo único es que le envia a la aplicación nuestro ID de usuario.

Del lado de nuestra aplicación recibiremos los siguientes parámetros:

  • result, nos indicará el estado de la petición que puede ser:
    Accepted – Cuando el usuario ha aceptado que podamos ver su estado
    Declined – Cuando el usuario ha declinado
    NoPrivacyUrl – Cuando nuestra página de privacidad no es encontrada
  • id, es el ID del usuario en una forma como USUARIO_ID@apps.messenger.live.com, esta cadena es con la que realizaremos la consulta

Cuando necesitemos saber el estado de una persona, debemos llamar a su servicio web en la siguiente dirección:
http://messenger.services.live.com/users/[ID]/presence?mkt=es-MX

Esto nos regresará un elemento en JSON (que puede ser utilizado por javascript si es utilizado mediante un proxy) de otra manera necesitamos convertirlo a PHP, en el ejemplo utilizo Zend_Json para obtener el resultado, el resultado es muy sencillo tiene los siguientes valores (ya convertido en php):

  • $estado['icon']['url']
    Icono de estado
  • $estado['icon']['width']
    Ancho del Icono
  • $estado['icon']['height']
    Alto del Icono
  • $estado['displayName']
    Texto que el usuario ha puesto en su messenger
  • $estado['status']
    Estado del usuario (ID)
  • $estado['statusText']
    Estado en formato ‘legible’ pero debe proporcionarse el ‘contexto’ para que provea en el lenguaje correcto, en la liga de arriba ya se proporcionó para Español de México (?mkt=es-MX)

De esta manera podemos ver el estado de una persona.

Descargar Código:
http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_LiveDevPresenceApi/.tar.gz

Ver Ejemplo:
http://demo.livesourcing.com/blog_vida/articulos/DanguerArticle_LiveDevPresenceApi/

Información (en inglés):
http://msdn.microsoft.com/en-us/library/bb936691.aspx

Temas similares