Windows Live Presence API
In un articolo pubblicato non molto tempo fà ho avuto modo di parlare delle API Windows Live Messenger IM Control e Presence.
Finalmente ho avuto il tempo di implementare qualcosa su questo blog.
Alla vostra destra potete notare che ho implementato un bottone con le immagini degli stati del mio Windows Live Messenger (in seguito solo WLM). Quando sono online, il bottone diventa cliccabile ed è possibile aprire una sessione di chat senza dover conoscere il mio account Windows Live ID.
Lo stato si aggiorna in maniera automatica ogni 60 secondi, visualizzando sia il mio nickname che in mio stato in tempo reale (o quasi!).
Per realizzare la cosa, apparte procurarmi delle immagini adatte, mi sono rifatto alla documentazione pubblicata dalla Microsoft.
In pratica si tratta di fare una richiesta HTTP GET ad una risorsa che, in formato JSON, darà lo stato attuale dell’utente WLM.
L’url dell’API è così strutturata:
http://messenger.services.live.com/users/[ID]@apps.messenger.live.com/presence/?mkt=[LANGUAGE]
dove [ID] è il numero identificativo associato al nostro account Windows Live ID (reperibile cliccando qui); e [LANGUAGE] è il linguaggio in cui preferiamo reperire le informazioni. Ad esempio, se le vogliamo in italiano utilizzeremo il codice it-IT; se in inglese invece il codice en-US; e così di seguito.
Come dicevo prima, i dati vengono restituiti in formato JSON; per cui o assimiliamo direttamente i dati all’interno di uno script JavaScript o parserizziamo la stringa JSON per poi avere un array di dati. Tralasciando la seconda soluzione, che magari spiegherò in un altro articolo, possiamo optare per la prima soluzione. Tra l’altro l’API ci viene anche in aiuto.
Infatti, un ulteriore parametro che possiamo indicare all’API è cb (probabilmente sta per callback, cioè una chiamata di ritorno). Questo parametro si aspetta, come valore, una stringa che sia il nome di una funzione JavaScript da noi stessi creata per la visualizzazione dello stato.
Ammettiamo di avere, in un documento HTML, il seguente stralcio di codice:
Sempre all’interno di questo documento possiamo creare uno script JavaScript così formato:
Per attivare questa funzione, volutamente elementare, non dobbiamo far altro che inserire il seguente codice all’interno del nostro documento HTML:
Il browser evocherà l’API caricandola come un modulo JavaScript che eseguire la funzione creata da noi e, all’interno del nostro DIV#wlmStatusText, potremo così visualizzare lo stato del nostro account WLM in italiano.
In effetti sarà caricato qualcosa di simile a questo:
Ovviamente se siamo più bravi (come me!
) non utilizzeremo questa soluzione ma bensì creeremo una soluzione asincrona che permette più flessibilità e maggiore possibilità di manipolazione.
Condizione sine qua no è autorizzare Windows Live Messenger a rendere pubblico il nostro stato di utilizzo di WLM. Per fare questo basta andare in questa pagina, attivare il checkbox e salvare!
Se sei curioso di sapere come ho implementato io la cosa, clicca qui e analizza la funzione windowsLiveMessenger(). Ricorda inoltre che, se hai intenzione di implementare una soluzione asincrona, devi necessariamente crearti un tuo proxy, questo perché non è possibile effettuare una richiesta XMLHttpRequest verso un dominio esterno a quello del tuo sito.















