Tophost Hosting

venerdì 18 luglio 2008

OpenSocial


OpenSocial è un inseme di API comuni che consentono la realizzazione di "social application" per molto siti web, cioè dal punto di vista dello sviluppatore è possibile scrivere un' applicazione che funzioni contemporaneamente su più siti che rispettano le specifiche dettate da OpenSocial (MySpace, Hi5, iLike, Orkut ...).
L' approccio per la scrittura di una applicazione OpenSocial è sostanzialmente quello dei google gadget, ovvero un documento xml contenente al proprio interno un frammento HTML/Javascript; la differenza con google gadget sta nel fatto che le OpenSocial API offrono l' ambiente necessario per accedere facilmente hai dati dei social network.
Vediamo un esempio. Supponiamo di voler realizzare un widget che recuperi la friends list.
Per prima cosa creiamo il file js che dovrà contenere il codice javascript.



gadgets.util.registerOnLoadHandler(init);
function init() {
loadFriends();
}


In questo modo abbiamo creato una funzione di init che viene richiamata quando l' applicazione viene caricata.
Definiamo ora loadFriends():



function loadFriends() {
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');
req.add(req.newFetchPeopleRequest('VIEWER_FRIENDS'), 'viewerFriends');
req.send(onLoadFriends);
}



Con opensocial.newDataRequest() possiamo creare un oggetto di tipo richiesta, per poi popolarlo con i data di cui abbiamo bisogno; nel nostro caso 'viewer' e viewer' s friends.
Tramite la send usiamo una funzione di callback, pre prendere i dati ritornati dal server e mostrarli sulla pagina.
Quindi creiamo onLoadFriends():



function onLoadFriends(data) {
var viewer = data.get('viewer').getData();
var viewerFriends = data.get('viewerFriends').getData();
html = new Array();
html.push('<ul>');
viewerFriends.each(function(person) {
html.push('<li>' + person.getDisplayName() + "</li>");
});
html.push('</ul>');
document.getElementById('friends').innerHTML = html.join('');
}



Come si vede abbiamo raccolto i dati provenienti dal server in risposta alla nostra richiesta, e li stiamo formattando in HTML per inserirli dentro il div 'friends' che andremo a creare nella parte html del file xml:



<module>
<moduleprefs title="Gifts part 1 - Friends">
<require feature="opensocial-0.7">
</require>
<content type="html">
<!--[CDATA[
<script src="http://opensocial-resources.googlecode.com/svn/samples/tutorial/tags/api-0.7/gifts_1_friends.js">
</script><br />
<script> gadgets.util.registerOnLoadHandler(init);
</script>

<div id="'main'"> Your friends: <div id="'friends'"></div> </div><br /> ]]-->
</content>
</moduleprefs>
</module>

Nessun commento:

Posta un commento

Rate this post: (data provided from NewsGator Online)