Facebook made two interesting announcements this week in the area of making their platform more open. The first announcement was made by Mike Shroepfer in the developer blog post Next Steps in Openness where he writes
Enabling social information to flow through the Web is one of the core goals of Facebook. In the two months since Facebook Connect became generally available, over 4,000 sites and desktop applications have gone live with the service. Users can now log into sites across the Web using their Facebook account, bring their identity and friends with them, and share information and experiences using the same features as they would with applications on Facebook.
As we've launched and built Facebook Connect, we've been participants in OpenID efforts. One of our user experience experts, Julie Zhuo, presented at the UX Summit in October. Several of our engineers have been participating in meetups, and one of them ran as a community member for a board seat. We're happy to announce today that we are formalizing our support of the OpenID Foundation by officially joining the board.
At first glance it seems contradictory for Facebook to join the OpenID foundation given that many people view Facebook Connect to be a competitor to OpenID as a single sign-on solution albeit a centralized one. The confusion from pundits around this announcement from Facebook is summarized in the Ars Technica article Facebook's "next steps in openness" raises questions which openly questions why the company needs to join the OpenID foundation when Facebook Connect seems to be enjoying broader deployment across the Web.
The reason seems quite straightforward to me. Right now, Facebook has created a situation where web sites that want to enable their users log-in with credentials from third party sites need to implement two solutions; an OpenID consumer and Facebook Connect. This places a burden on web sites which now either have to chose to adopt one solution over the other or create a user experience problem by offering users both options. It's bad enough that there is now a market for companies who wrap both solutions in a single package like JanRain and Clickpass. I wouldn't be surprised if Facebook has been getting an earful from some of their larger Facebook Connect partners about being a competing offering to OpenID.
That said, I doubt that a generic solution like OpenID will ever beat the ease of use and value added functionality that Facebook has created with Facebook Connect. By supporting OpenID, Facebook gets to silence the sites who simply want single sign-on solution that is built on standards so they can implement one solution to get access to users of Facebook, Google, Yahoo!, Windows Live, MySpace, and AOL's services among others. However anyone who wants the richer integration that comes with integrating with the Facebook mini-feed and live feed will still need to adopt the proprietary Facebook Connect.
The second interesting announcement about Facebook opening up comes from Chris Putnam in the post titled Opening Up Facebook Status, Notes, Links, and Video to Facebook Platform which is excerpted below
We've seen increasing engagement with over 15 million users updating their status each day and sharing over 24 million links per month. We wanted to make sure this content and the ability to share this content was available through our standard APIs.
Specifically, your applications can now directly access all of a user's status, links, and notes via new methods and FQL calls. Your application will have access to any status, notes, or links from the active user or their friends that are currently visible to the active user. In addition, we're opening new APIs for you to post links, create notes, or upload videos for the current user, and we've made setting a user's status easier.
We're pretty excited to see what kinds of ideas you can come up with to help users create and share more content.
Like Facebook Connect, this is a further step away from the walled garden approach that characterized the Facebook platform of 2007. In 2007, the goal of Facebook's platform efforts was to tell websites to re-implement themselves as Facebook apps (e.g. iLike website vs. iLike Facebook app). With Facebook Connect and the changes to their APIs announced above, Facebook is now acknowledging that their users use other websites and integration with those sites doesn't require these sites to become sharecroppers on the digital farmland that is the Facebook canvas page.
Twitter has shown the value of having open APIs for link sharing and status updates which isn't lost on Facebook given their failed attempt to acquire Twitter. Sharing status updates is a powerful way for humans to connect in social contexts and given Facebook's goal to be the world's social operating system we can expect them to make more moves in this space. It's particularly interesting to see how people use status updates as a way to communicate and share experiences during news events such as President Obama's inauguration. Facebook saw this first hand with their integration of Facebook's status updates with the CNN website where Randi Zuckerburg wrote
Over 2 million status updates were posted through the CNN.com Live Facebook feed with 4,000 status updates per minute on average and a huge spike of 8,500 updates when President Obama began his speech. We're thrilled that you and so many others chose to actively participate as history was being made—by sharing the experience with the people that matter most to you.
Similar surges were seen on Twitter as evidenced by the chart below. The thing that is interesting to note is that while status updates increased during the most exciting part of the inauguration other forms of Web traffic declined at the same time.
Similar traffic drop on Last.FM seen on the right
Google saw a similar drop as well
Was it because everybody went to Twitter?
Charts taken from the post Understanding Web Operations Culture - the Graph & Data Obsession on the O'Reilly Rader blog.
UPDATE: I've been playing around with the APIs announced and it looks like there actually isn't an API to get your friends' status updates included in the announcement. The status.get method only returns the status updates posted by the currently user. The closest I could get was trying the query below via fql.query but it never returned results
SELECT uid, message FROM status WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=$userid)
So much for the claims that this is a Twitter killer.
Now Playing: Eminem, Dr. Dre & 50 Cent - Crack a Bottle