As many have anticipated, Google has announced its OpenSocial platform, a set of APIs that allow developers to target multiple social software platforms.
As you might imagine, there’s already a lot of good coverage of this on the web, and I’m going to just provide some highlights here:
OpenSocial is a set of three common APIs, defined by Google with input from partners, that allow developers to access core functions and information at social networks:
- Profile Information (user data)
- Friends Information (social graph)
- Activities (things that happen, News Feed type stuff)
Hosts agree to accept the API calls and return appropriate data. Google won’t try to provide universal API coverage for special use cases, instead focusing on the most common uses. Specialized functions/data can be accessed from the hosts directly via their own APIs.
Unlike Facebook, OpenSocial does not have its own markup language (Facebook requires use of FBML for security reasons, but it also makes code unusable outside of Facebook). Instead, developers use normal javascript and html (and can embed Flash elements). The benefit of the Google approach is that developers can use much of their existing front end code and simply tailor it slightly for OpenSocial, so creating applications is even easier than on Facebook.
Applications can have full functionality on profile and/or canvas pages, subject to the specific rules of each host. Facebook, by contrast, limits most functionality to the canvas page, allowing a widget on the profile page with limited features.
OpenSocial is silent when it comes to specific rules and policies of the hosts, like whether or not advertising is accepted or whether any developer can get in without applying first (the Facebook approach). Hosts set and enforce their own policies. The APIs are created with maximum flexibility.
OpenSocial attacks Facebook where it is the weakest (and the strongest): its quintessential closed nature. Several Facebook developers have groused that a special Facebook-only mark-up language makes the task of writing Facebook apps tougher. (Recommended reading: Anil Dash on the historical limitations of proprietary development platforms.)
Open Social’s API is based entirely on Javascript. If you know HTML and Javascript today, you will be able to immediately use Open Social to turn your web applications and web sites into Open Social apps. You can also use standard web development tools to build Open Social apps. This is obviously a much better way to operate than having to learn a proprietary marketup language or query language.
Finally, although Open Social provides standard API calls to do many of the things you’ll want to do as an Open Social app, nothing will prevent containers from implementing additional Javascript or web services APIs to provide additional functionality to developers. Open Social app developers can therefore choose to stay “onroad” and have their apps run in any Open Social container, or go “offroad” for one or more specific containers to do special things. Open Social standardizes common functionality but doesn’t prohibit innovation. More on that below.
Open Social is very practical. Many standards die an early death because they are too complicated and hard to implement. Open Social is what you want in a standard — it’s expansive enough to do useful things, but limited enough to be very easy to implement, both for containers and for apps.
At this Thursday’s launch event, you will see Open Social already running in a variety of containers, including Ning, Orkut, Hi5, and LinkedIn, and across a variety of apps, including iLike, Flixster, and Slide. I’m talking about working code. At Ning, it took us only a few days for us to add support for Open Social as a container — because we already had all the necessarily underlying APIs and mostly just had to map to them — and the app developers in the launch created Open Social versions of their apps even more quickly. We also have live running examples, such as iLike, of the same app running in multiple containers — Ning, Orkut, and Hi5 — proving the interoperability that the Open Social specification promises.
Now, all that said, Open Social is not quite ready to go live on Ning and the other partners. The API has to stabilize a bit, and containers have to finish testing and validating their implementations. But public production systems aren’t far off — Ning, for one, will go live as soon as we possibly can, probably just as soon as Google finalizes the API.
So far, the platforms/companies that are participating in OpenSocial are
- Orkut (no surprise)
- Salesforce
- Ning
- Hi5
- Plaxo
- Friendster
- Viadeo
- Oracle (the company that I work for)
I suspect there will be more soon. OpenSocial may not be perfect (or even perfectly open), but it definitely is a major step forward. This bears watching.