Exploring OpenSocial

I’ve always been interested in emerging open standards for open connectivity between different websites, so OpenSocial has caught my attention. Without knowing a lot about it, I’m starting to explore OpenSocial and see how it could interoperate with my preferred development environment, Drupal, as well as with other tools that I’m interested in such as OpenID, FOAF, XFN, and so on.

The first two sites I found were the Google’s OpenSocial API site and the OpenSocial Developer Forum on Google Groups. This led me to a tutorial and to the OpenSocial Garage Wiki.

As I searched for OpenSocial and Drupal, I found what sounded like a promising site, www.opensocialsites.com. Perhaps this would be a list of sites that are already using OpenSocial, perhaps even Drupal sites using OpenSocial. It turned out to be a very interesting site powered by Drupal, CiviCRM and tied to N-TEN. However, it didn’t have anything to do with Google’s OpenSocial.

I also looked around a little bit for OpenID and OpenSocial, but haven’t found anything. Instead, much of the discussions are about whether or not OpenSocial is really open and whether or not it is much of a step forward.

I will leave those discussions to the pontificators. Instead, I’ll take a few moments to explore OpenSocial. Before you can do much of anything, for a programmers perspective, you need to authenticate.

The People Data API Developer's Guide, part of the OpenSocial Data APIs documentation, lists two ways of authenticating.

In the note at the top of the page, it says,

The OpenSocial People data API hasn't been released yet; this document is a preview of the developer's guide that we'll publish when we release the data API. All of the details are subject to change, but this preview should give you a general idea of what the API will be like.

It describes “ClientLogin username/password authentication” where you post an email address, a password, a source, and a service as an application/x-www-form-urlencoded content type to https://www.google.com/accounts/ClientLogin Digging deeper, it appears as if much of this is all the same old Google Gadget stuff that people have been kicking around for a while.

Will it be possible to roll this into a user authentication module for Drupal? Could this be used to make an OpenID system for Google? Will the ClientLogin be expanded to support authentication from other OpenSocial systems?

It looks like it might be a while before I get passed the authentication to really start looking under the hood.