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