I’ve been browsing the OpenSocial API docs just released at http://code.google.com/apis/opensocial/. Here are some initial thoughts and observations.
* The friend model is simple and, as far as I can tell, non-extensible. Basically each person has a list of friends that can be retrieved via the API. There is no way to express different types of friend relationships (e.g., friend vs. acquaintaince). Also, for apps/sites that distinguish “friend” from “follower” (e.g., Twitter, LiveJournal), one needs to be able to distinguish between mutual friendships and one-way friendships. From what I’ve read so far, OpenSocial doesn’t handle this at all.
* There’s a typo on the front page – “and/or access from othter websites” With all the attention this is getting, didn’t anyone bother to proofread the docs?
* The persistence API seems incomplete- for example, there’s no access control. Can an object be marked as accessible to friends only? Nope.
* The activities API is the news feed. You can query all the activities generated by a given app, or all the activities for a user, but you can’t get the activity feed for a user’s friends. Of course, one can query for the user’s friends and then pull each friend’s activities individually, but then 1) that’s a lot of queries, and 2) the activities need to be interleaved by the client.
Overall I get the impression that the API was rushed out the door, and not designed by anyone who has thought broadly about social apps. I am curious how portable the data model will be to sites other than Orkut (again, it can’t even capture the basic “mutual friend” vs. “follower” distinction). It’s a decent start, but there are a lot of missing pieces to be filled.
Blogged with Flock
Tags: opensocialfacebook
My assumption is that they are going to make it better because everyone involved will want it to be better. Yes it may go down a couple rat holes, but it’s feasible that those implementing it best will force final adoption and standardization.
Last night I was thinking about more benefits, along the times of ussing Apps as extenstion such that a single 3rd web service could control and interact with all the OpenSource sites with your embedded socket.
Imagine if instead have have to do direct connections to API, you could instead have an extension that remained directly connected to the 3rd part API. Technically id doesn’t offer yu much as the original API should have 24/7 availability, but with OpenSocial you could embed your ‘App’ into a newtwork, which is really just a socket directly convery information for that user account, bout out and in, in a manner that is is controalled by a single server master, or prehaps a client-based master. Now imagine if your software had an extension for every major netowrk, that you could install for each user of yours that had a profile with one of the networks.
I see the benefits of OpenSocial is not an App being in the SocNet, but a network of related apps being all the SocialNetoworks transferring data in and out via a semi-permanent socket. In the end out data will be much more interesting that in data as users will be able to move off interfacing with the SocNet as it will be easier to interface with their MegaMeta interface that controls them all.