Windows Live Messenger Library

Cioe ?

Questa è una delle novità annunciate di recente (disponibili oggi in beta), che dà la possibilità di realizzare un vero e proprio Web Messenger, avendo le funzionalità classiche del noto  Messenger, ma nelle proprie applicazioni web.

Cosa sono

Le Windows Live Messenger Library sono delle librerie JavaScript che consentono l'accesso alle funzionalità del Messenger: è quindi possibile verificare la presenza on-line dei propri contatti, piuttosto che la possibilità di iniziare una conversazione con loro.

Sono utilizzabili dovunque sia utilizzabile il JavaScript, quindi inseribili anche all'interno di una semplice pagina HTML, ma possono essere utilizzate ad esempio con ASP.NET e ASP.NET AJAX. Quello che queste librerie forniscono sono degli oggetti con cui realizzare il codice che implementa un Web Messenger. Le Messenger Library forniscono degli oggetti utilizzabili lato client.

Come usarle ... in breve.

A questo link, trovate un tutorial dedicato, con il codice da inserire passo passo, cerco di puntualizzare i passi principali qui, in modo da comprenderne la logica e vi rimando al tutorial per il codice completo che è un po'  lungo da inserire in un post. 

1. Referenziare le Messenger Library

Primadi tutto bisogna referenziare nella pagina web le librerie js, come segue.

image

2. Creare il controllo per Sign-in

Nella pagina andrà inserito un elemento div che conterrà il controllo per fare la login (nella schermata finale vedete come si presenta) e invece in JavaScript andrà instanziato e utilizzato.

Per implementare le funzionalità complete andranno inseriti più elementi div nella pagina, ognuno dei quali visualizzerà le funzionalità che si vuole realizzare: lista contatti, messaggi etc.

Nell'esempio seguente vedete come istanziare il controllo:

image

Il primo parametro è l'ID dell'elemento div della pagina che conterrà il controllo, poi una pagina con le informazioni sulla privacy, una pagina che svolge funzionalità di comunicazione e poi il "mercato" di riferimento per l'italia: it-it.  La pagina che permette la comunicazione cross-domain è anch'essa disponibile nel tutorial.

In ultimo viene aggiunto un gestore per l'evento authenticationCompleted che viene scatenato dopo che l'utente si è autenticato con il suo account Windows Live ID. 

3 Sign-in dell'utente

Nella funzione di call-back viene creato un'istanza dell'oggetto User, dato che l'utente si è precedentemente autenticato, quindi viene fatto SignIn e viene definito un nuovo gestore per quando l'operazione di sigin si è conclusa:

image

4. Creare la lista dei contatti

Una volta completata la fase di sig-in, nella funzione di call-back signInCompleted, posso iterare nella lista dei contatti del mio utente e andare a costruire la parte di interfaccia che li visualizzerà.

image

Quello che devo fare in più è agganciare un gestore di eventi che andrà a vedere quando cambierà la "presenza" del nostro contatto, cioè quando da off-line passerà on-line e così via. Ometto il codice che è un po' lungo, ma che concettualmente fa più o meno quello che vi ho raccontato.

5. Creare una conversazione

Come l'utente ha una collezione per i "Contacts", ha anche una collezione per le "Conversations".

Fondamentalmente verrà aggiunto un gestore eventi per ogni nuova conversazione e un gestore eventi per la gestione di ogni messaggio. Il codice da inserire non è poco, ma la logica è semplice e trovate già il tutto nell'esempio del tutorial, che dovrete modificare in base alle esigenze di layout del vostro sito.

A questo link trovate un esempio live, da cui potete scaricare anche i codici completi.

image

Conclusione

Le nuove Messenger API ci danno quindi un nuovo strumento per migliorare l'esperienza utente di chi naviga nel nostro sito, dando loro la possibilità di utilizzare un Web Messenger. Le nuove API messe a disposizione della piattaforma Windows Live, vanno ad arricchire quelle già presenti.

Vi ricordo che il punto di partenza per iniziare a sviluppare con Windows Live è dev.live.com.

Happy Coding!

image  The English version of this post (Automatically translated)