Dezember 2008
OpenSocial – Persistenz und Kommunikation
Fortsetzung, Teil 2
Hinweis:
Sofern die Daten in irgendeiner Weise weiterverwendet werden sollen, muss in jedem Fall beachtet werden, dass gespeicherte Daten in OpenSocial-Applikationen stets als String verarbeitet und zurückgeliefert werden. OpenSocial führt auch automatisch ein HTML-Escaping durch. Um solche Daten also wie ursprünglich verarbeiten zu können, muss das Escaping rückgängig gemacht werden:
var unescapedString =
gadgets.util.unescapeString(jsondata);
var obj = gadgets.json.parse(unescapedString);
Solche angelegten Daten können natürlich auch wieder komplett gelöscht werden. Der Wert alleine kann beispielsweise einfach "genullt" werden. Um nun allerdings auch den Schlüssel, also in dem Sinne den gesamten Datensatz zu löschen, gibt es den RemovePersonAppDataRequest. Diesem werden die zu löschenden Felder sowie, wie gehabt, ein entsprechender Viewer mitgegeben. Listing 4 – Applikationsdaten per Angabe der Felder löschen:
function removeAppData() {var req = opensocial.newDataRequest();req.add(req.newRemovePersonAppDataRequest("VIEWER", ["Spielerstatus ", " Spielstand "]),"clear_data");req.send(handleRemoveAppData);}
Während der Entwicklung einer Applikation kann es manchmal hilfreich sein, sämtliche durch die Applikation gespeicherte Daten zu löschen. Listing 5 zeigt, wie es geht:
function removeAllAppData() {var req = opensocial.newDataRequest();req.add(req.newRemovePersonAppDataRequest("VIEWER", "*"), "clear_data");req.send(handleRemoveAllAppData);}
Kommunikation
Manchmal ist es wichtig, Daten mit einem eigenen Server auszutauschen. Dazu gibt es eine entsprechende Methode makeRequest in der Gadgets-API. Bevor allerdings diese Methode aufgerufen wird, muss ein entsprechender Content-Type festgelegt werden. Unterstützt werden aktuell die Typen DOM (DOM-Objekt), FEED (JSON-Repräsentation eines RSS- oder ATOM-Feeds), JSON (JSON-Objekt) und Text (Textdaten). Sie sind in der Enumeration gadgets.io.ContentType aufgeführt. Listing 6 zeigt eine entsprechende Funktion zur Durchführung eines Requests:
function requestUrl(url, contentType, callbackFunction) {var params = {};params[gadgets.io.RequestParameters.CONTENT_TYPE] = contentType;gadgets.io.makeRequest(url, callbackFunction, params);}
Dieser requestUrl-Funktion wird neben einer URL und dem Content-Type auch direkt eine Callback-Funktion übergeben, die die empfangenen Daten verarbeiten soll. Sollen beispielsweise Daten von einer URL abgerufen werden, die diese als JSON-Objekt zurückgibt, lässt sich dies wie in Listing 7 gezeigt realisieren:
var receivedData;function onUrlRequested(data) {if (data.data && data.data.length) {receivedData = data.data;}}requestUrl("http://www.meineUrl.de/meineDaten",gadgets.io.ContentType.JSON,onUrlRequested);
Die empfangenen Daten befinden sich nach dem Durchlauf in der Variablen receivedData und können beliebig weiterverarbeitet werden. Sollen nun Daten an den Server übergeben werden, geht dies leider nur per GET-Parameter, POST wird aktuell noch nicht unterstützt.
OpenSocial – Aktivitäten
Im nächsten Teil (Teil 6) geht es weiter mit den Aktivitätsdaten von OpenSocial. In Teil 7 erfolgt dann eine Einführung in die REST-Schnittstelle. Ein Seitenwechsel wird im achten und letzten Teil der Serie vollzogen: Hier soll gezeigt werden, wie ein OpenSocial-Container erstellt wird, der eigene Applikationen hosten kann. Anregungen, Fragen und Kritik werden in Form von Kommentaren gerne entgegengenommen und beantwortet.
Der komplette Quellcode des oben beschriebenem Beispiels kann hier heruntergeladen werden.
André Wussow ist Fachautor und Trainer mit Schwerpunkt auf Webtechnologien und mobilen Lösungen. Sein aktuelles Buch über sichere Webanwendungen (entwickler.press) erhalten Sie im Handel.

- Best of GGGGfunden
- Casual Friday - Super Bowl, Superman und Beyonce
- Facebook stellt 60 neue Timeline-Apps vor
- Path entschuldigt sich für Datenklau und löscht heimlich gesammelte User-Infos
- Facebook-User mobilisieren sich gegen rechte Wählergruppe
- E-Mail-Beleidigung bringt Startup wieder ins Gespräch
- Soziale Netzwerke in Deutschland: Nutzerübersicht [Infografik]
- Erfolgreiches Job Recruiting via Facebook [Infografik]
- Besserer Kundenservice durch Social Media? [Infografik]
- Picozu: Photoshop-Klon im Browser-Fenster mit JavaScript, HTML5 und CSS3
- GIF me some mo'
- Liest Google meine E-Mails?
- Apple Newsstand - zu prüde für Penis-Cover
- Selection - Straßenatlas durch die deutsche Agenturlandschaft
- Safer Internet Day - Jugendliche besonders gefährdet
- Sind online Zahlungen sicher? [Infografik]
- Erfolgreich bloggen - Teil 2: Wordpress installieren
- Makaber: Steve Jobs macht Werbung für Android
- Twitter: 10.000 Tweets pro Sekunde beim Super Bowl
- Best of GGGGfunden
- Casual Friday - Siri, Big Bang und eine Welt ohne Strom
- Nach Twitter jetzt auch Blogger mit Zensur - internationale Blogging-Community adieu?
- Leiche auf Google Maps gefunden
- Facebook: Verbot für österreichische TV-Sender
- Battle of the Startup Bands - Gründer rocken die Hauptstadt
- Google, Twitter, Facebook, LinkedIn - Deine virtuellen Freunde [Infografik]
- Facebook-Börsengang: Zuckerberg legt Fakten auf den Tisch
- Twitter will Tweets länderspezifisch zensieren
- HTML5 vs Adobe Flash [Infografik]
- Facebook-Börsengang: erstmal tief stapeln

































