OpenSocial 0.7 Released

The latest version of the OpenSocial spec has been released, 0.7:

The best news is that, based on numerous discussions with both app developers as well as container sites, we believe OpenSocial 0.7 has all the necessary pieces to launch OpenSocial apps to users at scale. In fact, both hi5 and orkut will be using OpenSocial 0.7 for their upcoming user-facing launches.

There are two major pieces to this release:

Updating OpenSocial

The OpenSocial APIs have been upgraded:

  • Standardised profile information fields. The release adds a slew of standard fields that you can access about a Person. There include location, schools, pets, movies, sports, and more. However, keep in mind that a container may not have all of this information available so your application should always check first by using the supportsField method.
  • Support for viral growth. Two new methods allow your application to send messages on behalf of a user. You can invite a user’s friends to install your application with the requestShareApp method. You can also send an application-specific message with the requestSendMessage method. Both of these methods require the user sending the message to authorise the request first.
  • Activity templates. You can now define activity messages with placeholders for pieces of application or user data. This separation of data and presentation allows multiple activities to be combined into activity summaries — consolidated bundles of activities that let users know what their friends are up to without having to wade through a flood of messages. For example, instead of seeing five new updates about friends that installed a new application, you would see one update that says five of your friends added the application. For details on how to use activity templates in your application, see opensocial.Activity in the OpenSocial API reference.
  • Simplified persistence API. Support for global and instance-scoped application data has been removed from the API. Global application data can be implemented using feeds (that can be prefetched for performance) and other web standards. Instance-scoped application data can be implemented on top of user-scoped data by including the module ID of the application in the key.

Gadgets Open Sourced

As promised, the full Gadgets engine has been open sourced:

As part of the Apache Shindig project, gadgets have been open sourced. The new Gadgets Specification defines the gadgets.* JavaScript namespace where you’ll find that some of your favourite methods from the Gadgets API have been re-namespaced into a cleaner API for your convenience and clarity. For example, _IG_Adjust_IFrame_Height is now available as gadgets.window.adjustHeight

Tags: , , , ,

The Social Graph API

In "Thoughts on the Social Graph", Brad Fitzpatrick wrote:

There are an increasing number of new "social applications" as well as traditional applications which require the "social graph". What I mean by "social graph" is the global mapping of everybody and how they’re related, as Wikipedia describes and I talk about in more detail later. Unfortunately, there doesn’t exist a single social graph (or even multiple which interoperate) that’s comprehensive and decentralized. Rather, there exist hundreds of disperse social graphs, most of dubious quality and many of them walled gardens. (…) If I had to declare the problem statement succinctly, it’d be: People are getting sick of registering and re-declaring their friends on every site., but also: Developing "Social Applications" is too much work.

Five months later, Brad Fitzpatrick announced that Google will start to index FOAF files and the XFN microformats from web pages to gather publicly defined relations between people. For example, "XFN outlines the relationships between individuals by defining a small set of values that describe personal relationships. In HTML and XHTML documents, these are given as values for the rel attribute on a hyperlink. XFN allows authors to indicate which of the weblogs they read belong to friends, whom they’ve physically met, and other personal relationships."

It’s easy to edit the links from your blogroll to highlight your friends or your acquaintances:

You can also link to your other site’s or to your pages from Flickr, del.icio.us, Twitter, etc. and consolidate your online identity:

Google allows you to access these social relationships using a simple JSON API. The API could be used by social applications to discover some of your friends that already use the same application. "So you’ve just built a totally sweet new social app and you can’t wait for people to start using it, but there’s a problem: when people join they don’t have any friends on your site. They’re lonely, and the experience isn’t good because they can’t use the app with people they know. You could ask them to search for and add all their friends, but you know that every other app is asking them to do the same thing and they’re getting sick of it." Since the data is already publicly available, this API makes it easy to discover your friends and let you select the ones you want to keep in the new context.

For example, Bradfitz from LiveJournal has a friend Jane274. When Brad joins Twitter, the API could discover that he also has a LiveJournal page and his LiveJournal friend Jane274 is the same as Jane from Twitter. This way, Brad found a friend who has a Twitter account.

find-friends-using-google-social-api

Of course, the problem is that few people use FOAF and XFN to declare their relationships, but Google’s new API could make them more visible and social applications could use them. Ultimately, Google could also index the relationships from social networks if people are comfortable with that.

Tags: , , , , ,

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales