Freigeben über


!ASP.NET & APIs recientes de MS

Si estas leyendo este post...

...posiblemente trabajes con asp.net en vez de con php o con jsp.

...posiblemente estarás familiarizado (de oidas vale) con tecnologías como ASP.NET AJAX, Windows Live Services o Silverlight.

...posiblemente darás por hecho que al ser tecnologías de MS, como tu estás en plataforma MS las puedes utilizar sin problemas.

...pero...posiblemente no hayas caido en que son tecnologías de cliente independientes de la plataforma de lado del servidor, de modo que si conoces a un developer !ASP.NET estás tardando en decirle que se lance a asp.net ajax (librería cliente javascript), a los Windows Live Services (REST, XML-RPC, SOAP) y a Silverlight 1.0 :)

¿Por qué no sacarle partido!

Por ejemplo.... el Windows Live Contacts Control .

¿Que es eso? El contactscontrol es la forma fácil de acceder a diferentes servicios de Live, encapsula todo el trabajo de autenticarse contra Live ID, obtener contactos de Live Data y Live Contacts. Tecnológicamente, es un control Javascript que permite a un usuario de un sitio web ver a sus contactos de Windows Live desde la web.

¿Para qué vale? Tiene dos aplicaciones posibles. Una es sencillamente que puedas comunicarte con tus contactos desde la página web, ya sea a través de correo o de IM. La segunda es que envies cierta información de alguno de tus contactos al sitio web (dirección postal para incluirlos en un mapa, envio de algun regalo, dirección de correo para que le notifiquen de algo...). En cuanto pueda haré un post del mecanismo de comunicación del control con la página web para pasarle esa información, hay un whitepaper que es una pasada :)~~

¿Cómo se come? muuuuuy fácil. Hay que hacer 3 páginas HTML o lo que prfieras.

Privacypolicy.htm --> Política de privacidad que se le mostrará al usuario del sitio web en caso de que quiera incluir información de sus contactos. Pon lo que quieras :)

channel.htm --> Necesaria para el mecanismo de comunicación del control con la página web en la que esta alojado. Bájate esta página con el botón derecho y copia el contenido.

tupagina.htm --> Aqui empieza el 'desarrollo'.

1. Primero incluye un par de scripts en el head para referenciar el control

<script type="text/javascript"
src="https://controls.services.live.com/scripts/base/v0.3/live.js">
</script>
<script type="text/javascript"
src="https://controls.services.live.com/scripts/base/v0.3/controls.js">
</script>

2. Incluimos un namespace en el html para poder referenciar el control

<html xmlns:devlive="https://dev.live.com">

3. Incluimos el control. Para ver el detalle de cada uno de los parámetros pásate por la web oficial o pregunta en el post ;) Hemos de especificar la información que necesitamos de los contactos en dataDesired y podemos capturar eventos que lanza el control con funciones Javascript.

Tened en cuenta que puede haber diferencias en la funcionalidad de cada view (tile, list, tilelist) y por lo tanto en los parámetros. Para una lista completa, pasaos por el API.

<devlive:contactscontrol
style="width:250px;height:500px;float:right;border:solid 1px black;"
devlive:view="list"
devlive:privacyStatementURL= "https://miUrl.com/privacyPolicy.htm"
devlive:channelEndpointURL="https://miUrl.com/channel.htm"
devlive:dataDesired="name,email"
devlive:market="es"
devlive:onSignin="onSignin"
devlive:onSignout="onSignout"
devlive:onError="onError"
devlive:onData="onData">
</devlive:contactscontrol>

4. Capturamos los eventos. Solo el onData recibe parámetros. Recibirá un array de elementos con los campos que hayamos especificado en dataDesired, de modo que esta fácil recorrerlo ;)

<script type="text/javascript">
function onData ( p_elementos )
{
  var s = "Hecho! " + p_elementos.length + " elementos recibidos. <br>"
  for (var i = 0; i < p_elementos.length; i++) {
     s += "<p>"
     s += "Nombre: " + p_elementos[i].name +"<br>"
     s += "Email: " + p_elementos[i].email;
     s += "</p>"
  }
  alert(s);
}
</script>

El propio control tiene una serie de métodos para manejar contactos (añadir, borrar...)  lo veremos más adelante.

fácil, no? Pruébalo! pero ten en cuenta que esta en beta :) y echale un ojo al FAQ si ves que ocurre algo que no esperas.

:wq!

Comments